在不同的包中重用Log4j实例

时间:2017-08-29 14:10:09

标签: java selenium-webdriver log4j

我正在研究BDD测试自动化。 最初我已经开始在StepDef中使用log4j logger,即在BaseTestClass类中使用下面的构造函数,该类由其他StepDef类扩展。

    public BaseTestClass(){
    logger = Logger.getLogger(this.getClass());
    PropertyConfigurator.configure("Log4j.properties");
}

现在,在Page Object级别(即在不同的包和类层次结构中),我想开始使用log4j logger。 我可以重用同一个实例吗? 我怎么能做到这一点?

由于

    log4j.rootLogger=INFO,CONSOLE,R,HTML,TTCC

#// Here we define the appender
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.TTCC=org.apache.log4j.RollingFileAppender
log4j.appender.HTML=org.apache.log4j.FileAppender
log4j.appender.DEBUG=org.apache.log4j.EnhancedThrowableRenderer


#// Here we define log file location
log4j.appender.R.File=./log/testlog.log
log4j.appender.TTCC.File=./log/testlog1.log
log4j.appender.HTML.File=./log/application.html

#// Here we define the layout and pattern
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern= %5p [%t] (%F:%L)- %m%n
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d - %c -%p - %m%n
log4j.appender.TTCC.layout=org.apache.log4j.TTCCLayout
log4j.appender.TTCC.layout.DateFormat=ISO8601
log4j.appender.HTML.layout=org.apache.log4j.HTMLLayout
log4j.appender.HTML.layout.Title=Application log
log4j.appender.HTML.layout.LocationInfo=true

1 个答案:

答案 0 :(得分:0)

我建议您在每个要记录的类中编写以下行。

private static Logger LOG = Logger.getLogger(<actualClass>.class);

然后您的记录器配置正确。

这里http://logging.apache.org/log4j/1.2/manual.html是一个非常好的起点。

相关问题