是否有任何日志记录功能允许您以编程方式创建 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
我正在开发一个需要将消息写入多个日志文件的程序,具体取决于它创建的线程数。线程的数量是任意的。是否有允许我为每个线程创建单独日志文件的日志记录工具?我目前使用的是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