SharePoint和Log4Net

Nic*_*ico 10 sharepoint moss logging log4net

我正在寻找将log4net集成到SharePoint以获取Web请求,功能激活和所有计时器内容的最佳实践.

我的服务器场中有几个子项目,我想只有一个Log4Net.config文件.

[编辑]
我不仅需要为Web应用程序配置log4net,这很容易做到(我使用global.asax和log4net.config文件,所以我可以修改日志设置而不需要重新加载webapp),但我还需要记录异步事件:

  • 事件处理程序(如ItemAdded)
  • 计时器工作
  • ...

The*_*ing 9

我最近实现了这个,并提出了一个适合我的解决方案.

使用全局范围的解决方案将log4net配置文件部署到12个配置单元,将log4net dll部署到GAC中.然后在您的应用程序代码中,从全局文件的位置显式初始化log4net.这允许您记录功能接收器,计时器作业和Web应用程序代码.

[assembly: log4net.Config.XmlConfigurator(ConfigFile = 
    @"C:\Program Files\Common Files\Microsoft Shared\" + 
    @"Web Server Extensions\12\CONFIG\log4net.config", Watch = true)]
Run Code Online (Sandbox Code Playgroud)

请参阅http://www.codeproject.com/KB/sharepoint/SharepointLog4Net.aspx

  • 只是一个小小的想法:我建议使用SPUtility.GetGenericSetupPath(@"CONFIG\log4net.config")来获取SharePoint路径.在这种情况下,SharePoint是否在C驱动器上并不重要. (3认同)

Nat*_*Nat 0

您可以将配置文件作为解决方案包的一部分发布到 12 hive(使用STSDev来创建任何包)。这将为您提供配置的设定位置,并且可以以受控方式发布对其进行的任何更改(即不需要手动编辑,只需回滚并重新安装解决方案)。