Java 使用log4j的restlet日志记录

Java 使用log4j的restlet日志记录,java,log4j,restlet,slf4j,Java,Log4j,Restlet,Slf4j,直到昨天,我还是Restlet2.0.15的快乐用户,当时他们似乎已经停止了Maven存储库中的2.0.x版本,所以我不得不升级到2.1.1 在旧版本中,我使用SLF4J作为连接Log4J的桥梁,并且我能够将restlet日志获取到基于Log4J的日志系统中。这不再适用于restlet 2.1.1。你知道我需要修什么吗 这就是它的工作方式: public static void initLogging() { // install the SL4J bridge such as the

直到昨天,我还是Restlet2.0.15的快乐用户,当时他们似乎已经停止了Maven存储库中的2.0.x版本,所以我不得不升级到2.1.1

在旧版本中,我使用SLF4J作为连接Log4J的桥梁,并且我能够将restlet日志获取到基于Log4J的日志系统中。这不再适用于restlet 2.1.1。你知道我需要修什么吗

这就是它的工作方式:

public static void initLogging() {
    // install the SL4J bridge such as the org.restlet logging messages to
    // be appended to Log4J too, from the default java.util.logging based
    // implementation
    SLF4JBridgeHandler.install();
    ...
    if (log4j != null) {
        DOMConfigurator.configure(log4j);
    }
    log = Logger.getLogger(SomeClass.class);
}

本周末,我们遇到了一个硬件故障,将逐步恢复Maven存储库中的2.0.x工件(2.0.10之前的版本已经可用)

然而,2.0分支已经到了生命的尽头,因此升级到2.1.1绝对是一个好主意

据我所知,SLF4J扩展自2.0以来根本没有改变,只调整了日志级别,并添加了JULI的编程控制。它可能弄坏了什么东西


您能在GitHub中输入一个问题吗?

我发现它可以与slf4j restlet扩展配合使用,这行代码:

System.setProperty("org.restlet.engine.loggerFacadeClass", "org.restlet.ext.slf4j.Slf4jLoggerFacade"); 
而不是

SLF4JBridgeHandler.install(); 

谢谢我输入了问题#706。我发现它可以与slf4j restlet扩展以及以下行配合使用:System.setProperty(“org.restlet.engine.loggerFacadeClass”,“org.restlet.ext.slf4j.Slf4jLoggerFacade”);而不是SLF4JBridgeHandler.install();另请参阅,实际上我发现使用a-D启动属性而不是使用System.setProperty()来设置它可以消除所有的STDERR日志记录。我不确定为什么图书馆会把信息记录到STDERR上,这对我来说似乎是错误的。