场景:
最近在开发中,有用到 Spring 的 Quartz 定时任务,里面涉及的业务性日志比较多,而且还是定时执行,如果和其他的放在日志放在一起,不好查看,所以考虑通过在 logback.xml 中配置,将job 的日志输出至单独的日志文件夹中。
logback.xml 增加如下配置:
<!-- 配置job日志输出至单独的日志文件中 -->
<appender name="JOB_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/job/job.log.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder
class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<!-- 日志输出编码 -->
<layout class="ch.qos.logback.classic.PatternLayout">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
</layout>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!--需要将日志单独输出的包路径-->
<logger name="com.nx.web.task" additivity="false">
<appender-ref ref="JOB_LOG"/>
</logger>
<!-- 日志输出级别 -->
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<!-- 将我们新增的配置添加进root中统一设置输出级别 -->
<appender-ref ref="JOB_LOG" />
</root>