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中sql server服务如何启动