7

如标题中所述,我使用的是 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 获取日志文件?

4

2 回答 2

12

对不起!我误解了“Logback”的用法。我从http://www.mail-archive.com/user@slf4j.org/msg00661.html得到了解决方案

IE

看来您误解了 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 绑定了一个且只有一个底层日志 API(每次 JVM 启动)。

高温下,

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

于 2011-03-18T05:05:55.907 回答
0

如果您使用的是 JBoss 5.1 并且遇到同样的问题[logback not writing to file],那么在 jboss-web.xml 中添加以下内容。

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

这应该可以解决您的问题。

于 2013-05-25T18:22:21.527 回答