j w*_*ill 6 java configuration slf4j smtpappender log4j2
在log4j2文档log4j2 java配置中,默认配置是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
Run Code Online (Sandbox Code Playgroud)
这将为控制台生成ERROR或FATAL级别的日志记录.我的默认日志记录以相同的方式工作.我遇到的问题是当我这样做的时候:
<logger name="com.foo.Bar" level="TRACE"/>
<Root level="ERROR">
<AppenderRef ref="STDOUT">
</Root>
Run Code Online (Sandbox Code Playgroud)
根据文档,log4j2 java配置,这样就可以了
消除除com.foo.Bar之外的所有TRACE输出.
另一方面,我的实现就好像是
<logger name="com.foo.Bar" level="TRACE"/>
Run Code Online (Sandbox Code Playgroud)
甚至没有.它仍然只会打印错误日志.
问题
以下是有关我的设置的一些信息:
Maven依赖
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.0-beta9</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.0-beta9</version>
</dependency>
<dependency>
Run Code Online (Sandbox Code Playgroud)
其他
我在适当的班级测试这个.我正在运行JUnit测试文件.我使用了src/main .xml文件,并且我使用了src/test .xml文件.两者最终都得到了相同的结果.
结束目标
我的最终目标是让特定的记录器发送SMTP请求.我很确定我知道如何做到这一点,我只是在努力解决这个小问题