jso*_*ski 1 java logging log4j maven log4j2
可能我搜索了所有Internet,但是我必须错过一些东西。
我根据文档配置Log4j2和Commons-logging。我添加了log4j2.xml,但是它的配置对应用程序输出没有影响。我看起来Log4j无法读取此文件。这是我的配置:
pom.xml
<properties>
<log4j2.version>2.3</log4j2.version>
</properties>
<dependencies>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j2.version}</version>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
\ src \ main \ resources \ log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="TRACE">
<Properties>
<Property name="filename">fileName</Property>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="Pattern Pattern %d{DEFAULT} %-5level %t : %logger{1} - %m%n"/>
</Console>
<RollingFile name="RollingFile"
fileName="${filename}.log"
filePattern="${filename}-%d{yyyy-MM-dd}.log">
<PatternLayout pattern="%d{DEFAULT} %-5level %t : %logger{1} - %m%n"/>
<TimeBasedTriggeringPolicy/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="com.mydomain" level="TRACE"/>
<Root level="TRACE">
<AppenderRef ref="Console"/>
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
Run Code Online (Sandbox Code Playgroud)
在任何班级-例如A级
private static final Log logger = LogFactory.getLog(A.class);
Run Code Online (Sandbox Code Playgroud)
应用程序具有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);
Run Code Online (Sandbox Code Playgroud)
并通过此功能logger_new正常记录日志,因此我设置了TRACE级别,首先在应用程序启动时还看到了一些日志:
Starting configuration XmlConfiguration[location=target\classes\log4j2.xml]
Run Code Online (Sandbox Code Playgroud)
但是登录LogFactory仍然不起作用。
| 归档时间: |
|
| 查看次数: |
1793 次 |
| 最近记录: |