log4j简介
Log4j是Apache的一个开放源代码项目,是项目中比较常用的日志记录组件。
引入log4j
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
log4j组成部分
loggers: 负责捕获记录信息。在类中实例化logger:
Logger logger = Logger.getLogger(TestDemo.class);
log4j的日志level有多个:
logger.debug(message); #调试
logger.info(message); #信息
logger.warn(message); #警告
logger.error(message); #错误
logger.fatal(message); #致命的
appenders : 负责发布日志信息,以不同的首选目的地,如数据库,文件,控制台,UNIX系统日志等。
常用的appenders:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
layouts: 负责格式化日志信息。
常见的Layout有:
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
log4j特性
- log4j的是线程安全的
- log4j的支持每个记录器多输出追加器
- log4j使用多个层次,即ALL,TRACE,DEBUG,INFO,WARN,ERROR和FATAL
- 日志行为可以使用配置文件在运行时设置
log4j配置文件
### 设置###
log4j.rootLogger = debug,stdout,D,E
### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
### 输出DEBUG 级别以上的日志到=src/main/resources/logs/debug.log###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = src/main/resources/logs/debug.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 输出ERROR 级别以上的日志到=src/main/resources/logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =src/main/resources/logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
调试一下日志输出信息:
查看控制台和文件中的日志信息已分别打印和写入。
总的来说,log4j在测试工程中能帮助我们调试测试程序,避免System.out类的输出,记录错误和异常信息,是个很实用的日志工具。