使用 logback 记录日志, 想把定时器产生的日志生成单独的文件中

由于定时器频繁产生日志, 干扰其他业务的日志, 我想把定时器产生的相关日志都记录到一个单独的日志中.

查看了网上的一些方式, 都是提到某个包或某个类单独采用一种 appender , 比如

<configuration scan="true">
    <springProperty scope="context" name="logName" source="spring.application.name" defaultValue="localhost.log"/>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/${logName}.log</file>
        <append>true</append>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>logs/${logName}-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>7</maxHistory>
            <totalSizeCap>3GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] &#45;&#45;%mdc{client} %msg%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
        </filter>
    </appender>

    <logger name="com.test.ScheduleTask" level="${logging.level}" additivity="false">
        <appender-ref ref="FILE" />
    </logger>
    
    .... 省略其他配置
</configuration>

上面这样虽然 ScheduleTask 类中的日志单独输出了, 但是 ScheduleTask 类中如果调用了其他类的方法, 那么其他类中的日志还是会打印到原日志文件中.

请问有没有办法把 ScheduleTask 类以及该类调用的相关类的日志都统一输出到一个单独的日志文件中

阅读 2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进