java - Logback 不记录 JUL 精细级别
问题描述
我正在修复在 tomcat 7 上运行的旧版 JSF 应用程序。
用户访问BB.java
package beans;
import java.util.logging.Level;
import java.util.logging.Logger;
public class UserAccessBB {
private static final Logger LOG =
Logger.getLogger(UserAccessBB.class.getName());
public UserAccessBB() {
LOG.fine("UserAccessBB");
logback.xml
<logger name="beans" level="TRACE" additivity="false">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</logger>
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
行家
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>0.9.20</version>
</dependency>
文件被复制到 WEB-INF/classes
日志文件仅包含来自此类的 INFO 和更高级别的日志。仅当我修改根记录器时才打印较低的级别。问题出在哪里?
解决方案
供将来参考和googlers:
为了使 Logback 能够将其配置传播到 JUL (java.util.logging),有必要添加
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<!-- reset all previous level configurations of all j.u.l. loggers -->
<resetJUL>true</resetJUL>
</contextListener>
并使用当前版本。感谢@vanOekel。有关详细信息,请参阅https://stackoverflow.com/a/20407321/1639556。
推荐阅读
- c# - 从 C# 调用带有 void* 的 dll
- xamarin.forms - 从 UWP URI 协议方案启动未导航
- swift - 像在 SCNARView 中一样计算 worldFront
- android - 如何在android上的mysql中进行更改
- r - 在 R 中更快地读取和转换 .pdf 文件并将其转换为 .txt 文件?
- javascript - Jquery选择多个div
- javascript - Javascript 语法错误,单选按钮上无法识别的表达式
- spring-boot - 当 bootstrap.properties 存在时 application.properties 在 spring config 客户端中被忽略
- vba - 如果用户跳过行输入数值,则强制用户在以下可用行中输入数据
- angular - 在离子中创建一个模态,但以我自己的方式呈现它