重新登录不记录JUL精细级别

Leo*_*rak 5 java logback java.util.logging

我正在修复在tomcat 7上运行的旧版JSF应用程序。

UserAccessBB.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");
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

专家

    <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>
Run Code Online (Sandbox Code Playgroud)

该文件被复制到WEB-INF / classes

日志文件仅包含INFO和此类的更高级别的日志。仅当我修改根记录器时才打印较低的级别。问题出在哪里?

Leo*_*rak 6

供将来参考和谷歌搜索者:

为了使 Logback 能够将其配置传播到 JCL (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>
Run Code Online (Sandbox Code Playgroud)

并使用当前版本。感谢@vanOekel。有关详细信息,请参阅/sf/answers/1428512501/