今天整个软件新城都停电了,趁机给自己放个假。一觉睡到自然醒,然后起床洗个澡,敷个面膜,靠在床边听听老歌...... 最惬意的生活,莫过于此了。
如果测试在执行过程中,没有相应的日志信息,那么当用例执行出错时,你是不是会为无法快速定位问题而懊恼?那么,今天就来讲讲如何给Selenium Web自动化中添加日志信息。没错,就是采用Log4j日志框架。
Log4j是什么
Log4j是Apche的一个开源项目,是一个强有力的日志操作包。在Selenium Web自动化中,通过使用Log4j,我们控制将日志信息输送到控制台、文件、GUI组件等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最重要的是,所有这些都可以通过一个配置文件来灵活配置,而无需修改应用的代码。
Log4j的三大组件:
Loggers:
Loggers用来处理日志信息。
log4j.rootLogger = [ level ] , appenderName1, appenderName2, …
log4j.additivity.org.apache=false:表示Logger不会在父Logger的appender里输出,默认为true。
Level: 定义一个Log4j级别,控制到应用程序中相应级别的日志信息的开关。Log4j包含7种级别:
- All: 输出所有Log
- DEBUG:输出debug log,常用于开发阶段
- INFO:输出information log,主要是为了标记执行过程。
- WARN:输出错误的或者意想不到的系统信息
- ERROR:输出影响系统正常进行的错误信息
- FATAL:输出导致系统崩溃的致命信息
- OFF:不输出log
比如在这里定义了INFO级别,只有等于及高于这个级别的才进行处理,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
appenderName:就是指定日志信息要输出到哪里。可以同时指定多个输出目的地,用逗号隔开。例如:log4j.rootLogger=INFO,A1,B2,C3
Appenders
Appenders负责配置日志信息输出目的地。
log4j.appender.appenderName = className
appenderName:自定义appderName,在log4j.rootLogger设置中使用;className:可设值如下几种:
1.ConsoleAppender:将日志文件输出到控制台,类似于将日志信息按照指定格式用System.out打印到控制台
log4j.appender.APILOG=org.apache.log4j.ConsoleAppender
选项