logback不同类的日志打印在不同的文件中
Rehoni / 2024-06-12
定义两个 appender,分别命名为 “CLASS1_FILE” 和 “CLASS2_FILE”。每个appender会将日志输出到指定的文件中,这里分别是 logs/class1.log 和 logs/class2.log。
定义两个 logger,分别对应 com.example.Class1 和 com.example.Class2 类。这两个 logger 的日志级别都设置为 “info”,并将日志输出到对应的 appender 中。additivity=“false” 的设置是为了防止日志被父 logger(在这里是 root logger)也处理。
最后,root logger 设置为只处理 “error” 级别以上的日志,它的日志输出到两个 appender 中。
示例如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="CLASS1_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/class1.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="CLASS2_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/class2.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="com.example.Class1" level="info" additivity="false">
<appender-ref ref="CLASS1_FILE" />
</logger>
<logger name="com.example.Class2" level="info" additivity="false">
<appender-ref ref="CLASS2_FILE" />
</logger>
<root level="error">
<appender-ref ref="CLASS1_FILE" />
<appender-ref ref="CLASS2_FILE" />
</root>
</configuration>