java - 如何对不同的包进行不同的日志记录?

标签 java logging logback

在 Log4j 中,很容易让应用程序中的不同包在不同级别记录(这对于调试特别有用)。除了创建自己的过滤器之外,还有其他简单的方法可以做到这一点吗?

我尝试在根标签中创建一个标签,或者在其名称之后创建一个包(让人联想到 Log4J),然后将它的附加程序放在其中,但是没有用。

那么,是否有一种内置到 LogBack 的方法来为某些不需要自定义过滤器实现的包定义记录器和/或记录级别?

最佳答案

我正在使用 Play! Web 应用程序,并且针对不同的包具有不同的日志级别。您可以在 <logger> element 的名称中指定包.

我的配置是:

<configuration>

    <conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel"/>

    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${application.home}/logs/application.log</file>
        <encoder>
            <pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
        </encoder>
    </appender>
    <appender name="TIMESTAMP_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <file>${application.home}/logs/batches/current.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy" maxHistory="720">
            <fileNamePattern>${application.home}/logs/batches/archived/%d{yyyy/MM/dd}.gz</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>{mpoplib} %date - [%level] in %thread %n%message%n%xException%n</pattern>
        </encoder>
    </appender>


    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%coloredLevel %logger{15} - %message%n%xException{5}</pattern>
        </encoder>
    </appender>

    <logger name="play" level="INFO">
        <appender-ref ref="FILE"/>
    </logger>
    <logger name="application" level="INFO">
        <appender-ref ref="FILE"/>
    </logger>
    <logger name="ru.kupikupon.mpoplib" level="DEBUG">
        <appender-ref ref="TIMESTAMP_FILE"/>
    </logger>


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

</configuration>

关于java - 如何对不同的包进行不同的日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15692165/

相关文章:

java - Tomcat 日志策略

java - 日志记录异常问题

java - 单击按钮时无法启用 JTextField

java - 在 Cordova 中添加 android 平台时,请安装 android target 19(android 最新的 sdk)

java - 如何使用 Mockito 关闭 stub 方法的参数

java - Logback 文件附加程序不会立即刷新

java - 如何使用Java以编程方式配置Logback conversionRule?

Java:setRequestMethod 不起作用

codeigniter - 在 Ubuntu 中启用 CodeIgniter 日志记录

java - 使用 log4j2 和 logback