Log4Net不记录或错误

我一直试图在我的asp.net Web应用程序中记录log4net,但没有成功或任何明显的错误。 我试图使用ADONetAppender appender与以下配置:

                                                              

在我的global.asax Application_Start中,我打电话

 log4net.Config.XmlConfigurator.Configure(); 

然后尝试记录:

 protected static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); protected void Page_Load(object sender, EventArgs e) { log.Info("did I log yet?"); } 

就我所知,所有这一切都无济于事。

您是否已添加在Configuration-> Configsections下添加以下部分

 

虽然可以将log4net配置设置添加到项目的app.config或web.config文件中,但最好将它们放在单独的配置文件中。 除了可维护性的明显好处之外,它还有一个额外的好处,即log4net可以在配置文件上放置FileSystemWatcher对象,以监视它何时更改并动态更新其设置。

要使用单独的配置文件,请将名为Log4Net.config文件添加到项目中,并将以下属性添加到AssemblyInfo.cs文件中:

 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)] 

注意 :对于Web应用程序,这假定Log4Net.config驻留在Web根目录中。 确保log4net.config文件在“属性”中标记为“复制到输出” – >“始终复制”。

从这里开始 。

您还可以设置以下appsettings以启用内部lo​​g4net调试信息

    

内部调试消息将写入控制台(如果有)或跟踪(例如Visual Studio中的调试窗口或sysintenals中的dbgview)。 这将帮助您解决log4net问题。

对于log4Net的Internal debugging是@Pratik建议的方法。 要将详细信息写入文件,请执行以下操作:

即使您使用不同的log4net配置文件,也要在web.config添加以下内容。

           

参考

  1. 如何启用log4net内部调试?
  2. log4net – Appenders在IIS7.5中不起作用