【自动化测试】log4j框架入门

1.什么是log4j

log4j是一个日志框架,配置简单,功能强大,在项目中用它来记录日志很方便。
对于测试人员来讲,使用log4j可以更好的跟踪项目中的一些交互和问题。
下载地址:https://logging.apache.org/log4j/2.x/download.html
在其中下载下来log4j-1.2.17.jar,log4j.properties。
复制jar包到项目类路径,再配置build path添加项目依赖。

2.log4j.properties详解

###根logger设置###
log4j.rootLogger = debug,console,file

### 输出信息到控制台###
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.Threshold = DEBUG 
log4j.appender.console.layout.ConversionPattern = [%p] %d{yyyy-MM-dd HH:mm:ss} method: %l----%m%n

###输出INFO 级别以上的日志文件设置###
###每天产生一个日志文件###
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
###将日志输出到指定位置,下面输出到的是E盘下的log文件夹下,保存为web.log###
log4j.appender.file.File = E:/log/web.log
log4j.appender.file.Append = true
log4j.appender.file.Threshold = warn 
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} method: %l - [ %p ]----%m%n

2.1 其中关于根logger:

  • 根logger主要定义log4j支持的日志级别及输出目的地。
  • log4j.rootLogger = [level],appenderName,appenderName,…
  • 这其中,level表示是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG等。日志输出的级别以根logger的级别为准,大于此级别的日志才会被显示在控制台/记录再日志文件
  • 建议使用ERROR、WARN、INFO、DEBUG这四个,级别从高到低。

2.2 关于Appender(附加器):

  • 可以一次性配置多个Appender
  • Appender定义日志信息输出在什么位置
  • 【自动化测试】log4j框架入门

2.3 其中的常用参数:

  • %m 输出代码中制定的日志内容
  • %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
  • %c 输出所属的类目,通常是所在类的全名
  • %n 输出一个回车换行符,windows平台为“/r/n”,unix平台为“/n”
  • %d 输出日志时间点的日期或事件,默认格式为ISO8601,u而可以在其后制定格式,比如: %d{yyyy-MM-dd HH:mm:ss},输出的数据格式如下:2018-11-3 14:55:30
  • %l 输出日志事件的发生位置,包括类名、发生的线程,以及在代码中的行数。eg:com.test.Tester.main(Tester.java:8)

3.如何使用

写一个测试类来测试一下:
//Logger.getLogger(Tester.class),根据log4j.properties文件的配置去创建一个Tester类的日志对象
private static Logger logger=Logger.getLogger(Tester.class);

public static void main(String[] args) {
	//logger.error(Object message,Throwable t);
	logger.error("这是error信息");
	logger.warn("这是warn信息");
	logger.info("这是info信息");
	logger.debug("这是debug信息");
}

4.可能会遇到的问题

如果eclipse的编码格式设置有问题,在打开log4j.properties文件时中午可能会出现乱码问题,此时根据图片步骤进行设置:
【自动化测试】log4j框架入门
点击ok之后,将之前打开的log4j.properties关闭后重新打开就显示正常啦。