此配置应该使我的日志条目最终在自定义日志中,对吧?但它最终会出现在应用程序日志中.我的应用以管理员身份运行.运行我的应用程序后,我可以确认使用EventLog.Exists("MyLog")
和创建了日志和事件源EventLog.SourceExists("MyApplication")
.
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
<logName value="MyLog"/>
<applicationName value="MyApp" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message %exception%newline" />
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud)
编辑:我发现问题是什么,但直到8h过去,我才能"自我回答"我的问题.
添加了一个EventLogAppender,如下所示:
<appender name="eventLogAppender" type="log4net.Appender.EventLogAppender,log4net" >
<mapping>
<level value="ERROR" />
<eventLogEntryType value="Error" />
</mapping>
<mapping>
<level value="DEBUG" />
<eventLogEntryType value="Information" />
</mapping>
<mapping>
<level value="INFO" />
<eventLogEntryType value="Information" />
</mapping>
<mapping>
<level value="WARN" />
<eventLogEntryType value="Warning" />
</mapping>
<logName value="NewLogName" />
<applicationName value="AppName" />
<layout type="log4net.Layout.PatternLayout,log4net">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud)
它创建新的日志,NewLogName
并添加应用程序名称为的Windows事件,AppName
但它将事件添加到Application
日志而不是NewLogName
.
我已在注册表中更改权限,并且应用程序名称位于注册表中的正确位置.有任何想法吗?