Log4j正在查找我的配置,因为一旦我删除它,我会收到一条错误消息,说它无法找到,但是它的属性在记录时不会反映出来。
log4j2.properties:
public class Test {
private static Logger logger = LogManager.getLogger(Test.class);
public static void main(String[] args) throws Exception {
logger.info("test");
logger.fatal(logger.getLevel());
}
}
Test.java:
20:19:31.848 [main] FATAL io.rj93.sarcasm.examples.CnnSentenceClassificationExample - ERROR
输出:
status="TRACE"
如您所见,记录器在将级别设置为INFO时将级别返回为ERROR,并且时间格式包括毫秒,即使它已被删除。
配置文件来自log4j网站,只有很小的改动(提到的两个,AddFieldAsXml()
)
我使用的是版本2.8.1。
答案 0 :(得分:2)
您使用其中包含XML配置的log4j2.properties
文件
这不一致。
log4J初始化无法识别用作属性格式的格式。因此它使用默认的log4J配置,为根记录器指定ERROR
级别。
只需将log4j2.properties
重命名为log4j2.xml
,就可以了。