如何在slf4j Logger中启用调试?

时间:2012-06-01 09:08:08

标签: java logging slf4j

如何为所有debug个对象全局启用slf4j.Logger

9 个答案:

答案 0 :(得分:13)

以编程方式,使用logback:

setLoggingLevel(ch.qos.logback.classic.Level.DEBUG);

,其中

public static void setLoggingLevel(ch.qos.logback.classic.Level level) {
    ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger) org.slf4j.LoggerFactory.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME);
    root.setLevel(level);
}

答案 1 :(得分:7)

存在各种切换调试日志的功能:
article对所有这些都有很好的解释。对我来说,合适的是:

将slf4j与Log4j记录器一起使用
创建文件 src / main / resources / log4j.properties

log4j.rootLogger=DEBUG, STDOUT
log4j.logger.deng=INFO
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

答案 2 :(得分:1)

对于log4j

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">

<!-- ============================== -->
<!-- Append messages to the console -->
<!-- ============================== -->

<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out"/>
    <param name="Threshold" value="INFO"/>

    <layout class="org.apache.log4j.PatternLayout">
        <!-- The default pattern: Date Priority [Category] Message\n -->
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
    </layout>
</appender>

<appender name="web" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="Threshold" value="DEBUG"/>
    <param name="Append" value="true"/>
    <param name="File" value="${catalina.home}/logs/web.log"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
    </layout>
</appender>

<category name="com.idc.scd" additivity="false">
    <priority value="${log4j.category.com.mypackage}"/>
    <appender-ref ref="web"/>
</category>

</log4j:configuration>

通过此配置,您的所有“com.mypackage”日志将写在catalina.home下的“web.log”文件中。

答案 3 :(得分:1)

使用logback作为slf4j绑定。

没有配置文件的默认行为是将DEBUG及以上级别的所有事件记录到System.out。有关详细信息,请参阅http://logback.qos.ch/manual/configuration.html#automaticConf

答案 4 :(得分:0)

取决于您使用的绑定...例如, log4j看看http://logging.apache.org/log4j/1.2/manual.html及其配置章节

答案 5 :(得分:0)

如果使用log4j作为slf4j的绑定,则可以创建log4j.xml(或log4j.properties)文件并将其添加到类路径中。一个例子可能是:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
  <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out" />
    <param name="Threshold" value="DEBUG" />
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-5p [%c{1}] %m%n" />
    </layout>
  </appender>
  <root>
    <appender-ref ref="CONSOLE" />
  </root>
</log4j:configuration>

答案 6 :(得分:0)

在Java启动时为SLF4J Simple api传递系统属性-Dorg.slf4j.simpleLogger.defaultLogLevel = DEBUG

enter image description here

答案 7 :(得分:0)

这是我通常用于通过logback设置日志记录的示例配置。
等级依赖性(对Maven同样适用)

compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25'
compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'

logback.xml配置将放置在项目的类路径(src / main / resources)中

<configuration>

    <statusListener class="ch.qos.logback.core.status.NopStatusListener" />

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M\(%line\) - %msg%n</Pattern>
        </layout>
    </appender>
    
    <!-- enable debug only on org.hibernate.SQL package -->
    <logger name="org.hibernate.SQL" level="debug" additivity="false">
        <appender-ref ref="STDOUT" />
    </logger>

    <root level="info">
        <appender-ref ref="STDOUT" />
    </root>

</configuration>

答案 8 :(得分:-1)

只需将以下内容添加到 application.properties

logging.level.org.springframework.web=DEBUG
logging.level.org.springframework.context=DEBUG