Windows Server 2003 上的 Log4Net

Posted

技术标签:

【中文标题】Windows Server 2003 上的 Log4Net【英文标题】:Log4Net on Windows Server 2003 【发布时间】:2011-04-04 10:04:14 【问题描述】:

我一直在开发一个在 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 [%propertyNDC] - %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 日志 = LogManager.GetLogger("MyLogger"); ...

我已经在以下位置创建了 MyLog 键值:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog

但是,那里没有任何记录。

我 100% 确定这在 Windows 7 上完美运行。

我需要在 Windows Server 2003 上进行一些其他特殊配置吗?

提前致谢

【问题讨论】:

1.您是否使用 INFO 级别或更高级别来检查您的代码? 2. FileAppender 工作正常吗? 3、能不能用log4net+eventlogappender创建一个console应用,在win-2003服务器上测试(这是为了隔离权限问题)? 【参考方案1】:

嗯……

事实证明,我还必须授予 NETWORK SERVICE 对以下密钥的完全权限:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog

【讨论】:

以上是关于Windows Server 2003 上的 Log4Net的主要内容,如果未能解决你的问题,请参考以下文章

无法从Windows Server 2003上的mscomctl.ocx加载控件'imagelist'

有关Windows Server 2003支持终止的问题

安全模式下windows server 2003中sql server服务如何启动

windows server 2003如何设置最大用户连接数

windows server 2003在vm上安装图解

Windows Server 2003 双网卡同时上网