是否有任何日志功能允许您以编程方式创建n个日志文件?

时间:2018-02-04 00:27:23

标签: multithreading logback slf4j

我正在开发一个需要将消息写入多个日志文件的程序,具体取决于它创建的线程数。线程数是任意的。是否有一个日志工具允许我为每个线程创建一个单独的日志文件?我目前正在使用sl4j和logback,它似乎要求在属性文件中配置文件名。

1 个答案:

答案 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