建一张表,如下:

create table log4j
(
    logId int not null auto_increment,--流水号
    createDate varchar(45) default null,--日志生成时间
    thread varchar(45) default null,--当前线程
    level varchar(45) default null,--当前日志的级别
    class varchar(45) default null,--生成日志的类
    message varchar(245) default null,--日志具体信息
    
    primary key(logId)
)

编写配置文件myLog4j.properties

#定义3个输出端
log4j.rootCategory=INFO,A1,A2,A3

#定义A1输出到控制器
log4j.appender.A1=org.apache.log4j.ConsoleAppender
#定义A1的布局模式为PaternLayout
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
# 定义A1的输出格式
log4j.appender.A1.layout.ConversionPattern=%4p [%t] (%F:%L) - %m%n

#定义A2输出到文件
log4j.appender.A2=org.apache.log4j.RollingFileAppender
#定义A2输出到哪个文件
log4j.appender.A2.File=./Sample.log
#定义A2输出文件的最大长度
log4j.appender.A2.MaxFileSize = 1KB
#定义A2的备份文件数
log4j.appender.A2.MaxBackupIndex = 3
#定义A2的布局模式为PatternLayout
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
#定义A2的输出模式
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n

#定义A3输出到数据库
log4j.appender.A3=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.A3.URL=jdbc:mysql://localhost:3306/study
log4j.appender.A3.driver=com.mysql.jdbc.Driver
log4j.appender.A3.user=root
log4j.appender.A3.password=root
#定义A3的布局和执行的SQL语句
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=INSERT INTO log4j(createDate,thread,level,class,message) values(\'%d\',\'%t\',\'%-5p\',\'%c\',\'%m\')

最后测试程序如下:

public static void sample()
    {
        Logger logger = Logger.getLogger(Log4jTest.class);
        
        PropertyConfigurator.configure("myLog4j.properties");
        logger.debug("Here is DEBUG messgae");
        logger.info("Here is INFO message");
        logger.warn("Here is WARN message");
        logger.error("Here is ERROR message");
        logger.fatal("Here is FATAL message");
    }

这样当我们运行该程序的时候会同时将上述日志信息转入到三个地方:
控制台:

数据库:

文件:
 
我们已经看到出现Sample.log文件,该文件我们在配置中指定,当然你也可以修改其它地方,另外Log4j的配置文件也放在项目根目录下。
同时当我们多运行几次该程序时,Sample.log超过1KB时就会将该文件自动改名,同时再将日志记录到新的Sample.log文件中,如下:

转载于:https://www.cnblogs.com/chmod755/p/3382862.html

Log4j的应用实例相关推荐

  1. 日志管理:(五) log4j.xml 配置实例

    log4j配置实例: [code="xml"] <?xml version="1.0" encoding="UTF-8"?> & ...

  2. Mybatis 使用的 9 种设计模式,真是太有用了

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:蚂蚁学Python crazyant.net/2022.ht ...

  3. MyBatis包含这9种设计模式,你知道几个?

    本文转载自: https://dwz.cn/KFgol1De 由JavaGuide整理排版. 虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量 ...

  4. Mybatis源码解读-设计模式总结

    虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式. Mybatis至少 ...

  5. Java 9 揭秘(19. 平台和JVM日志)

    Tips 做一个终身学习的人. 在这章中,主要介绍以下内容: 新的平台日志(logging)API JVM日志的命令行选项 JDK 9已经对平台类(JDK类)和JVM组件的日志系统进行了大整. 有一个 ...

  6. MyBatis 中的九种设计模式

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | http://www.crazyant.net ...

  7. Mybatis 使用的 9 种设计模式,真是太有用了~

    来源:crazyant.net/2022.html 虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的 ...

  8. Java日志操作总结

    Java日志操作总结 (2008-04-21 17:39:06) 标签: 杂谈   .  使用Jakarta Commons Logging(JCL) 1.1. 概述 Apache的开源日志组件Jak ...

  9. 面试官问你MyBatis中有哪些设计模式,把这篇文章发给他

    戳蓝字"CSDN云计算"关注我们哦! 作者 | 疯狂的蚂蚁 来源 | https://dwz.cn/KFgol1De 之前总结过一篇Spring中用到了哪些设计模式:<面试官 ...

最新文章

  1. 【git】 重置文件
  2. npm nodejs包管理工具 简介
  3. Linux 编译内核
  4. java中Logger.getLogger(Test.class)
  5. GitLab的安装及使用教程
  6. MySQL安装错误:/usr/local/mysql/libexec/mysqld: unknown option '--skip-federated'
  7. 想创业没有资金,如何获得启动资金?
  8. html中怎样播放本地视频教程,【Axure9基础教程】内联框架如何引入本地音频 视频 HTML PDF等本地文件...
  9. 利用汇编与机器码定位崩溃点
  10. 小熊派折叠开发板Docker编译烧录安装HAP
  11. lisp 回执多段线_多段线上加点的LISP程序源码
  12. mybatis如何查询主键
  13. 软件共享文件服务器,服务器共享文件软件
  14. 2. JavaScript Boolean 对象
  15. xgboost4j jar包下载
  16. jsp高校科研项目管理系统
  17. windows10睡眠问题完美解决,设置睡眠时间不管用怎么办?
  18. 视频转GIF动图MATLAB源码
  19. 每日一“酷”之Cookie
  20. 基于深度学习下的稳定学习究竟是什么?因果学习?迁移学习?之一

热门文章

  1. ajax实现局部删除,Express+AdminLTE+hbs+Ajax实现局部刷新终极版(第二部分)
  2. 简述osi参考模型各层主要功能_OSI网络模型
  3. oracle11g备份出错,Oracle 11g备份导入12c错误
  4. java客户端_Java常用的Http client客户端
  5. 一个账号可以登录几台机器_干货:一个PubMed账号可以有这么多用处!
  6. linux 关闭ext3日志,ssh – 可以在Linux(ext3)上减慢日志写入速度吗?
  7. oracle数据库创建回滚,如何重建Oracle数据库的回滚段?
  8. gradle引入子module配置_原创 | 看完此文,你对Gradle的理解又升级了
  9. java前期_【JAVA】前期环境配置
  10. php生成不重复时间戳,PHP获取时间戳和微秒数以及生成唯一ID