2.总结1中博客说的内容
目前市场上常用的日志有log4j(Apache)、commons-logging(Apache)、logging(JDK1.4)、slf4j、logback
他们之间各有优缺点,通常项目中会用两种组合的方式。
3.项目中遇到的日志配置(commons-logging + log4j)
日志的配置可以用properties文件或xml文件的方式配置
a.commons-logging.properties
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
b.log4i.xml
4.结合3中log4j.xml解析具体的配置的含义
a.加载。默认情况下,项目在启动的时候会加载classpath中名为log4j.properties或log4j.xml文件
b.日志的输出类型appender。有五种
org.apache.log4j.ConsoleAppender(输出在控制台)
org.apache.log4j.FileAppender(输出到文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),可通过log4j.appender.R.MaxFileSize=100KB设置文件大小,还可通过log4j.appender.R.MaxBackupIndex=1设置为保存 一个备份文件
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
c.日志输出的格式layout
如:
输出结果示例
2019-06-14 11:17:12,807 [INFO ] [ExportDataTask.java:34] - ----------info log------------
格式输出的format
%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 )
d.日志级别的设置logger
设置包com.wl.service.commom下面的日志输出级别、输出位置和输出格式
e.日志级别
日志级别有五种,会输出设置级别及以上的日志。
日志级别排序:debug
f.默认日志级别设置root
对于没有进行4.d中的设置所指定的日志方式的设置