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

Is there any logging function which allows you to create n number of log files programatically?

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

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 which relies heavily on MDC

这可能正是您要找的。另见 http://www.nurkiewicz.com/2013/04/siftingappender-logging-different.html