可能我搜索了所有Internet,但是我必须错过一些东西。
我根据文档配置Log4j2和Commons-logging。我添加了log4j2.xml
,但是它的配置对应用程序输出没有影响。我看起来Log4j无法读取此文件。这是我的配置:
pom.xml
2.3 commons-logging commons-logging 1.2 org.apache.logging.log4j log4j-api ${log4j2.version} org.apache.logging.log4j log4j-core ${log4j2.version}
\ src \ main \ resources \ log4j2.xml
fileName
在任何班级-例如A级
private static final Log logger = LogFactory.getLog(A.class);
应用程序具有main()
功能,因此可以由IDE或mvn exec:java运行。
问题:
日志正在运行-但使用默认方式。
正如您在log4j2.xml
文件中看到的,我将级别更改为TRACE
模式,并键入以下模式:Pattern Pattern
检查log4j2是否正在使用我的自定义配置。
没有logger.trace()
出现。没有文字Pattern Pattern
。控制台中的log4j没有错误/警告。
请帮助,并告诉我我做错了什么?
编辑:
@BrunoMarcoVisioli告诉我使用org.apache.logging.log4j.LogManager
代替LogFactory
。所以我在main()
方法中添加了新的记录器:
private static final Logger logger_new = LogManager.getLogger(CalculationApp.class);
并通过此功能logger_new
正常记录日志,因此我设置了TRACE
级别,首先在应用程序启动时还看到了一些日志:
Starting configuration XmlConfiguration[location=target\classes\log4j2.xml]
但是登录LogFactory
仍然不起作用。
您需要将log4j-jcl
依赖项添加到您的POM中,它将作为commons-logging和log4j2之间的桥梁。