【发布时间】:2018-05-18 11:16:34
【问题描述】:
我正在开发一个 Spring-MVC 应用程序,其中我使用 Jetty 作为我们的应用程序服务器。我想调试一个特定的 java 类的日志,但即使在启用 log4j 或 slf4j 并添加文件之后它也不起作用。
最后,我创建了一个war文件,添加到使用此命令java -jar start.jar --add-to-start=logging-log4j启动log4j,它在resources目录中创建了一个log4j.xml文件。在那个 log4j.xml 中,我添加了要调试的类,但没有添加任何 [DEBUG] 条目。
启用的模块:
log4j2-slf4j.mod
slf4j-log4j2.mod
slf4j-api.mod
logging-slf4j.mod
我还按照文档建议尝试了它们的组合和不同的日志记录。
log4j.xml 存在于 IDE 和 Jetty 的资源目录中。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
debug="false">
<!-- console appender -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %c{1} - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelMatchFilter">
<param name="LevelToMatch" value="INFO" />
<param name="AcceptOnMatch" value="true" />
</filter>
<filter class="org.apache.log4j.varia.DenyAllFilter"/>
</appender>
<logger name="com.zaxxer.hikari" additivity="false">
<level value="DEBUG" />
<appender-ref ref="console" />
</logger>
<root>
<priority value="ERROR" />
<appender-ref ref="console" />
</root>
</log4j:configuration>
我做错了什么?
【问题讨论】:
-
你似乎有桥梁,但没有 log4j 本身。 log4j 本身是否在您的类路径中?顺便推荐一下 logback 而不是 log4j,不过那是另外一回事了。
-
@JanLarsen :你是对的,我在 maven 中有 logback,ch.qos.logback。我不想在 maven 中添加 log4j,因为我可以看到我已将它们添加到排除列表中。如何根据我的要求配置 logback?谢谢。