使用slf4j和'logback'记录,但不创建配置中的指定日志文件。 (使用maven,码头)

时间:2011-03-16 12:03:25

标签: maven jetty slf4j logback

如标题中所述,我使用的是Maven和Jetty。使用SLF4J和Logback进行日志记录。我在'src / main / resources'上有'logback.xml'。

    <configuration>
        <appender name="STDOUT"
                class="ch.qos.logback.core.ConsoleAppender">
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>%-4relative [%thread] %-5level %class - %msg%n</pattern>
            </layout>
        </appender>

        <appender name="FILE"
            class="ch.qos.logback.core.FileAppender">
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>%-4relative [%thread] %-5level %class - %msg%n</pattern>
            </layout>
            <File>myLog.log</File>
        </appender>

        <logger name="org.mortbay">
            <level value="debug" />
        </logger>

        <root>
            <level value="error" />
            <appender-ref ref="STDOUT" />
            <appender-ref ref="FILE" />
        </root>
</configuration>

但我的问题是,如果我运行/调试项目,它不会创建文件'myLog.log'。获取日志文件的解决方案是什么。

有没有办法只用SLF4J获取日志文件?

2 个答案:

答案 0 :(得分:10)

抱歉!我误解了'Logback'的用法。我从http://www.mail-archive.com/user@slf4j.org/msg00661.html

获得了解决方案

即。

  

看来你误会了   SLF4J的目的。如果你放置   slf4j-jdk14-1.5.6.jar然后是slf4j-api   将与java.util.logging绑定。   不会使用Logback。只有你   放置logback-core.jar和   类路径上的logback-classic.jar   (但不是slf4j-jdk14-1.5.6.jar)会   SLF4J API与logback绑定。 SLF4J   与一个唯一的底层绑定   logging API(根据JVM启动)。

     

HTH,

感谢Ceki Gulcu。现在,我可以在我的文件中获取日志。

答案 1 :(得分:0)

如果你正在使用JBoss 5.1并且你遇到了同样的问题[logback没有写入文件],那么在jboss-web.xml中添加以下内容。

<class-loading>
    <loader-repository>
        com.hp:classloader=logback-slf4j
        <loader-repository-config>java2ParentDelegation=false</loader-repository-config>
    </loader-repository>
</class-loading>

这可以解决您的问题。