参考:
https://www.cnblogs.com/yudar/p/5113655.html
https://blog.csdn.net/niuma1024/article/details/51362606
一、简介
Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。
日志信息的优先级从高到低有FATAL(0)、ERROR(3)、WARN(4)、INFO(6)、DEBUG(7),分别用来指定这条日志信息的重要程度;
日志信息的输出目的地指定了日志将打印到控制台还是文件中;
而输出格式则控制了日志信息的显示内容。
说明: FATAL(0):指定非常严重的错误事件,这可能导致应用程序中止。java不建议使用
log4j的原则:假设设置的级别为q,在记录日志请求时,必须要>=q 的级别日志作用才会生效!
二、示例
xml形式:
properties形式:
三、参数说明
1. 打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )
例如:
<!-- 这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档--> <RollingFile name="RollingFile" fileName="./logs/mams-core-service.log" filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
2. Appender 为日志输出目的地,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),输出结果到System.out或是System.err。
org.apache.log4j.FileAppender(文件):输出结果到指定文件,同时可以指定输出数据的格式。append=“false”指定不追加到文件末尾。
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),自动追加日志信息到文件中,直至文件达到预定的大小,然后自动重新生成另外一个文件来记录之后的日志。
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
3.布局 layout
log4j提供4种布局. org.apache.log4j.HTMLLayout(以HTML表格形式布局)
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
#org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
#org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)