我最近从log4j切换到logback,想知道是否有一种简单的方法可以像log4j的log4j.debug
属性一样运行logback的调试模式。 我需要看看它从哪里获取了我的logback.xml
。
文档提到使用StatusPrinter
打印logback的内部状态,但这将需要进行代码更改。
[编辑]
这个问题在Logback 1.0.4中得到了修复。您现在可以使用-Dlogback.debug=true
来启用对logback设置的调试。
--旧回答--
不幸的是,没有一种方法可以通过系统属性来启用调试。您必须在logback.xml
中使用<configuration debug="true">
。请提交一个功能请求。
这是我处理的方式。我设置了一个名为'log.level'的系统属性,然后在logback.xml中引用它。
编辑:缺点是必须始终设置'log.level'。我处理的方法是在我的主要方法中检查并将其设置为INFO,确保在第一次记录调用之前执行此操作。然后我可以在命令行上进行覆盖,并具有合理的默认值。
以下是我在logback.xml中的设置:
<configuration>
<logger name="com.mycompany.project" level="${log.level}" />
<logger name="httpclient" level="WARN" />
<logger name="org.apache" level="WARN" />
<logger name="org.hibernate" level="WARN" />
<logger name="org.hibernate.cfg.AnnotationBinder" level="WARN" />
<logger name="org.hibernate.cfg.annotations" level="WARN" />
<logger name="org.quartz" level="WARN" />
<logger name="org.springframework" level="WARN" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-16thread] %-5level %-35.35logger{30} - %msg%n</pattern>
</encoder>
</appender>
<root level="${log.level:-INFO}">
<appender-ref ref="STDOUT" />
</root>
</configuration>
java -Dlogback.statusListenerClass=ch.qos.logback.core.status.OnConsoleStatusListener ...
请查看:Logback手册
我无法使用所选答案使其工作。但是,以下方法有效:
java -Dlogback.configurationFile=/path/to/config-debug.xml com.domain.Main
只需在服务器上添加一个文件(例如本例中的config-debug.xml
),并在需要调试时将其保留在那里。如下所示。
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{dd-MMM-yyyy HH:mm:ss.SSS} %-5level [%thread] %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
使用上述-D
参数运行您的应用程序。
当一切恢复正常时,删除-D
参数并重新启动您的应用程序。
嗯,这很简单。你可以使用以下方法之一:
log.level = debug
在Spring Boot的application.properties文件中。
或者您也可以在logback.xml的配置文件中设置此项。
<root level="${log.level}">
<appender-ref ref="ANY_APPENDER" />
</root>
-Dlogback.debug=true
。 通过http://gordondickens.com/wordpress/2013/07/18/logback-config-showing-debug-level/。 - Rich Dougherty