我一直在 Windows 7 操作系统上使用 Visual Studio 2010 开发 Web 应用程序。
我使用 Log4Net 登录事件查看器,效果很好,这意味着我的 Windows 7 事件查看器上的所有内容都正确记录。
在 Windows Server 2003 机器上安装同一个项目后,我注意到没有任何记录......
我已经在 Windows Server 2003 计算机的管理员组中添加了 ASPNET,但问题仍然存在...
在我添加的 AssemblyInfo.cs 文件中:
[程序集:log4net.Config.XmlConfigurator()]
在我添加的 Web.config 文件中:
...
...
-->
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
<param name="LogName" value="MyLog" />
<param name="ApplicationName" value="MyApplication" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<!-- Setup the root category, add the appenders and set the default level -->
<root>
<level value="INFO" />
<appender-ref ref="ConsoleAppender" />
</root>
<!-- ApplicationKit category - the presentation UI -->
<logger name="MyLogger">
<level value="INFO" />
<appender-ref ref="FileAppender" />
<appender-ref ref="EventLogAppender" />
</logger>
最后是背后的代码:
... log4net.Config.XmlConfigurator.Configure(); Ilog log = LogManager.GetLogger("MyLogger"); ...
我已经在以下位置创建了 MyLog 键值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog
但是,那里仍然没有任何记录。
我 100% 确定这在 Windows 7 上完美运行。
我是否需要在 Windows Server 2003 上进行一些特殊配置?
提前致谢
最佳答案
嗯...
事实证明,我还必须授予 NETWORK SERVICE 对以下 key 的完全权限:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog
瞧
关于windows - Windows Server 2003 上的 Log4Net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5536997/