我正在尝试为MyTest
类实现log4j日志记录。代码的包结构如下所示。目前我的log4j.properties位于trial
package。
我有时会得到日志,但有时调试器显示" log4j:WARN没有找到记录器的appender。"所以我最终得到了:
BasicPage.class
package com.trial.pages;
public class BasicPage{
protected static final Logger pageLogger = Logger.getLogger(BasicPage.class);
<some code goes here>
}
FirstPage.class
package com.trial.pages.mobile;
import package com.trial.pages;
public class FirstPage extends BasicPage {
public void pageMethod() {
pageLogger.info("These are logs from the Pages.");
}
}
BasicTest.class
package com.core.data;
public class BasicTest{
protected static final Logger testLogger = Logger.getLogger(BasicTest.class);
<some code goes here>
}
MyTest.class
package com.trial.tests.mobile;
import com.trial.pages.mobile.FirstPage;
import com.core.data.BasicTest;
public class MyTest extends BasicTest{
public void someMethod(){
testLogger.info("These are the logs from the test activities.");
new FirstPage.pageMethod();
}
}
答案 0 :(得分:1)
- 我应该在哪里放置log4j.properties以在MyTest中始终如一地获取日志?
醇>
通常只需将log4j.xml文件放入src/main/resources
和src/test/resources
并让log4j自己找到它:不需要代码,默认的log4j初始化将会启动它。
2.同一个项目在不同的包中有多个log4j.properties吗?
我不会这样做,因为类加载器只接受找到的第一个。您可以在单个属性文件中为不同的记录器配置多个配置。
log4j-properties-file-multiple-loggers-in-same-class
how-can-i-create-2-separate-log-files-with-one-log4j-config-file
log4j-multiple-loggers-levels-and-appenders
<强> EDIT1:强>
你可以帮我了解关于何时以及如何进行的信息 log4j.properties移动到目标/类[propertyconfigurator看起来 在里面]
构建项目时,log4j.property文件将自动移动。但该文件应该在src/main/resource/
中以便自动移动。
如果是这种情况,则无需以编程方式配置属性配置程序。 Log4j可以直接使用。