【问题标题】:How to set log level for a specific class in spring with logback.xml?如何使用 logback.xml 在 spring 中为特定类设置日志级别?
【发布时间】:2017-09-17 10:07:36
【问题描述】:

我试图不在com.data.march.ClientUtils 类中记录调试消息。为此,我认为我可以将 logback.xml 中该类的日志级别更改为error

这是我的 logback.xml:

<configuration>

    <appender name="dailyRollingFileAppender"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>c:/Logs/logato.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <FileNamePattern>c:/Logato/Data/Logs/Logato.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!-- keep 30 days' worth of history -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <Pattern>%d{HH:mm:ss.SSS} %-5level [%thread] %logger{35} - %msg %n
            </Pattern>
        </encoder>
    </appender>

    <appender name="minuteRollingFileAppender"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover every minute -->
            <FileNamePattern>c:/Data/Logs/minutes/Logato-minute.%d{yyyy-MM-dd_HH-mm}.log
            </FileNamePattern>
            <!-- keep 30 minutes' worth of history -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <Pattern>%-4relative %-5level [%thread] %logger{35} - %msg %n
            </Pattern>
        </encoder>
    </appender>

    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <Pattern>.%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg %n
            </Pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>TRACE</level>
        </filter>
    </appender>

    <logger name="org" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="dailyRollingFileAppender"/>
        <appender-ref ref="consoleAppender"/>
    </logger>
    <logger name="com.data" additivity="false">
        <level value="DEBUG"/>
        <appender-ref ref="dailyRollingFileAppender"/>
        <appender-ref ref="consoleAppender"/>
    </logger>
    <logger name="org" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="dailyRollingFileAppender"/>
    </logger>
    <logger name="com.data.march.ClientUtils" additivity="false">
        <level value="ERROR"/>
    </logger>
    <root>
        <level value="DEBUG"/>
        <appender-ref ref="consoleAppender"/>
    </root>
</configuration>

但是我的尝试失败了。你有什么想法吗?

【问题讨论】:

    标签: spring logging logback


    【解决方案1】:

    尝试添加这个:

    <logger name="com.data.march.ClientUtils" level="error"/>
    

    【讨论】:

    • 这是否支持诸如“com.data.**.*Test”之类的通配符。我无法让它工作。
    • @John 你可以使用name="com.data",意思是“所有记录器包com.data”
    • 我认为 Spring Boot 通过添加 logging.level.com.data.march.ClientUtils=ERROR 有一些常见的方法来做到这一点。我以前看过这项工作,但并非总是如此。如果他们制作了 ONE 记录器并有 ONE 方式来配置它,那就太好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-05
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    相关资源
    最近更新 更多