如何为每个log4net记录器实例创建新文件?

时间:2010-09-29 17:58:31

标签: log4net

我正在尝试为每个线程创建一个不同的日志文件(线程正在处理一些站点处理)。基本上只是使用从正在处理的站点派生的名称命名日志文件。

我知道GlobalContext.properties和TheadContext.properties的所有内容,但我似乎都没有真正想要做的事情。在任何一种情况下,任何并发运行的线程都只使用当前输出文件作为其输出的文件。我看到的唯一区别是,如果我使用ThreadContext来设置属性,它会生成所有文件但只输出到一个,使用全局它似乎只生成一个文件,除非进程在不同的时间开始。

我真正想做的是能够告诉文件只使用文件名中的记录器对象的名称(实例化对象时使用的名称),而不是使用这些属性。

1 个答案:

答案 0 :(得分:1)

我建议您重新考虑您的日志记录策略,而不是对抗配置。 log4net不是为每个线程/类的日志文件构建的。记录器在启动时或首次写入时生成(依赖)。使用尾随日志文件阅读器,如Kiwi Log Viewer或Splunk,并过滤消息中的线程ID或记录器名称。

如果你把它们放在转换模式中......

<conversionPattern value="%date [%thread] %-5level %logger: %message%newline" />