1

我创建了一个 NTEventLogAppender 类型的附加程序,如下所示:

log4j.appender.EVA=org.apache.log4j.nt.NTEventLogAppender
#log4j.appender.EVA.log=TestLog
log4j.appender.EVA.layout=org.apache.log4j.PatternLayout
log4j.appender.EVA.source=TestSource
log4j.appender.EVA.layout.ConversionPattern=[%c][%l][%p][%thread]: %m%n

如您所见,在注释行中,我尝试设置日志 TestLog,以便将日志错误存储在我的应用程序的特定事件查看器日志中,而不是事件查看器默认应用程序日志中。

如果我取消注释一行,我会报错说日志属性不存在:

**log4j:WARN No such property [log] in org.apache.log4j.nt.NTEventLogAppender.**

使用 Log4Net 甚至可以做到这一点吗?

谢谢

4

1 回答 1

0

我认为这在 log4j 中是不可能的:

当我使用 NTEventLogAppender 时,为什么不能将我的记录器名称映射到出现在 NT 事件日志中的记录器?

不幸的是,记录器名称是在消息资源 DLL 中硬编码的(请参阅关于 NTEventLogAppender 的上一个问题),因此没有任何简单的方法可以动态覆盖它们......事实上,我认为不可能这样做,因为您必须修改每个应用程序的 DLL 资源。由于大多数本机应用程序无论如何都不使用 Logger 列...

来源: http: //logging.apache.org/log4j/1.2/faq.html#a2.10

于 2011-12-16T22:39:28.280 回答