我正在开发一个需要将消息写入多个日志文件的程序,具体取决于它创建的线程数。线程数是任意的。是否有一个日志工具允许我为每个线程创建一个单独的日志文件?我目前正在使用sl4j和logback,它似乎要求在属性文件中配置文件名。
答案 0 :(得分:1)
Logback的SiftingAppender
根据给定的运行时属性分离(或筛选)日志记录。一般结构如下:
<appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator>
<key>clientPort</key>
<defaultValue>unknown</defaultValue>
</discriminator>
<sift>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>server-${clientPort}.log</file>
....
</appender>
</sift>
</appender>
默认情况下,SiftingAppender会假定MDCBasedDiscriminator严重依赖MDC。
这可能正是您所寻找的。另请参阅http://www.nurkiewicz.com/2013/04/siftingappender-logging-different.html