log4net

http://www.cnblogs.com/zjfree/archive/2011/02/22/1961586.html

在C# winForm程序中添加log4net

1. 引用 log4net.dll

2. 添加 app.config 内容如下:

?
<? xml version = "1.0" encoding = "utf-8" ?>
< configuration >
     < log4net >
         < appender name = "RollingLogFileAppender" type = "log4net.Appender.RollingFileAppender" >
             < param name = "File" value = "Log\Log.txt" />
             < param name = "AppendToFile" value = "true" />
             < param name = "MaxSizeRollBackups" value = "100" />
             < param name = "MaximumFileSize" value = "2MB" />
             < param name = "RollingStyle" value = "Size" />
             < param name = "StaticLogFileName" value = "true" />
             < layout type = "log4net.Layout.PatternLayout" >
                 < param name = "ConversionPattern" value = "%-5p %d [%c] %m%n" />
             </ layout >
         </ appender >
         < root >
             < level value = "all" />
             < appender-ref ref = "RollingLogFileAppender" />
         </ root >
     </ log4net >
</ configuration >

具体设置说明可在网上找。

3. 在 Properties/AssemblyInfo.cs 添加 [assembly: log4net.Config.DOMConfigurator(Watch=true)]

4. 在代码中添加日志

定义LOG private static log4net.ILog LOG = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

写入日志 LOG.Info("窗体打开");

5. 如果要记录所有未处理异常,修改 Program.cs 如下 

?
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Reflection;
  
namespace ExceptionTest
{
     static class Program
     {
         static log4net.ILog LOG = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
  
         /// <summary>
         /// 应用程序的主入口点。
         /// </summary>
         [STAThread]
         static void Main()
         {
             //捕获未处理异常
             Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
             Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
             AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
  
             Application.EnableVisualStyles();
             Application.SetCompatibleTextRenderingDefault( false );
             Application.Run( new Form1());
         }
  
         static void Application_ThreadException( object sender, System.Threading.ThreadExceptionEventArgs e)
         {
             LOG.Error(e.Exception);
             //throw new Exception("线程未知异常", e.Exception);
             MessageBox.Show(e.Exception.Message, "线程异常" , MessageBoxButtons.OK, MessageBoxIcon.Error);
             Application.Exit();
         }
  
         static void CurrentDomain_UnhandledException( object sender, UnhandledExceptionEventArgs e)
         {
             Exception ex = e.ExceptionObject as Exception;
             LOG.Error(ex);
             MessageBox.Show(ex.Message, "应用程序异常" , MessageBoxButtons.OK, MessageBoxIcon.Error);
             Application.Exit();
         }
     }
}

在Asp.net 网站中添加log4net

1. 引用 log4net.dll

2. 配置Web.config 如下

?
<? xml version = "1.0" ?>
  
< configuration >
     < configSections >
         < section name = "log4net" type = "log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
     </ configSections >
     < appSettings />
     < connectionStrings />
     < system.web >
         < compilation debug = "true" />
         < authentication mode = "Windows" />
     </ system.web >
  
     <!--日志-->
     < log4net >
         < appender name = "RollingLogFileAppender" type = "log4net.Appender.RollingFileAppender" >
             < param name = "File" value = "D:\test\Log.txt" />
             < param name = "AppendToFile" value = "true" />
             < param name = "MaxSizeRollBackups" value = "100" />
             < param name = "MaximumFileSize" value = "2MB" />
             < param name = "RollingStyle" value = "Size" />
             < param name = "StaticLogFileName" value = "true" />
             < layout type = "log4net.Layout.PatternLayout" >
                 < param name = "ConversionPattern" value = "%-5p %d [%c] %m%n" />
             </ layout >
         </ appender >
         < root >
             < level value = "all" />
             < appender-ref ref = "RollingLogFileAppender" />
         </ root >
     </ log4net >
</ configuration >

3. 添加 Global.asax 内容如下:

?
private static log4net.ILog LOG = log4net.LogManager.GetLogger( "Log4net 测试网站" );
void Application_Start( object sender, EventArgs e) 
{
     // 在应用程序启动时运行的代码
     log4net.Config.DOMConfigurator.Configure();
     LOG.Info( "网站启动" );
}
  
void Application_Error( object sender, EventArgs e) 
{
     // 在出现未处理的错误时运行的代码
     Exception ex = HttpContext.Current.Server.GetLastError();
     LOG.Error( "未处理异常" , ex);
}

将站点的所有未处理异常记录到log4net中。

4. 如何使用

定义LOG private static log4net.ILog LOG = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

写入日志 LOG.Info("网站启动");

示例代码下载

下载:http://files.cnblogs.com/zjfree/ErrorLog.rar

环境:WIN2003 + VS2005 + C#

你可能感兴趣的:(asp.net)