您可以尝试使用
SiftingAppender
中的Logback
,它可以根据运行时属性来分离日志。
<configuration>
<appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator>
<key>loggerName</key>
<defaultValue>unknown</defaultValue>
</discriminator>
<sift>
<appender name="FILE-${loggerName}" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/${loggerName}.log</file>
...
</appender>
</sift>
</appender>
<root level="DEBUG">
<appender-ref ref="SIFT" />
</root>
</configuration>
SiftingAppender
使用鉴别器在运行时确定日志文件名。 ${loggerName}
的文件属性中的 RollingFileAppender
占位符将替换为每条日志消息的记录器名称。
!!!但是请考虑到
SiftingAppender
比常规附加程序更需要资源密集型。