博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

LOG4NET用法(个人比较喜欢的用法) (转帖)

Posted on 2008-08-27 10:26  codingsilence  阅读(381)  评论(0编辑  收藏  举报
web.config配置如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 
<configSections>
  
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
 
</configSections>
 
<log4net>
  
<logger name="logerror">
   
<level value="ERROR" />
   
<appender-ref ref="ErrorAppender" />
  
</logger>
  
<logger name="loginfo">
   
<level value="INFO" />
   
<appender-ref ref="InfoAppender" />
  
</logger>
  
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
   
<param name="File" value="Log\\LogError\\" />
   
<param name="AppendToFile" value="true" />
   
<param name="MaxSizeRollBackups" value="100" />
   
<param name="MaxFileSize" value="10240" />
   
<param name="StaticLogFileName" value="false" />
   
<param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
   
<param name="RollingStyle" value="Date" />
   
<layout type="log4net.Layout.PatternLayout">
    
<param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p 
   &lt;BR&gt;%n异 常 类:%c [%x] &lt;BR&gt;%n%&lt;BR&gt;%&lt;HR Size=1&gt;" />
   </layout>
  
</appender>
  
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
   
<param name="File" value="Log\\LogInfo\\" />
   
<param name="AppendToFile" value="true" />
   
<param name="MaxFileSize" value="10240" />
   
<param name="MaxSizeRollBackups" value="100" />
   
<param name="StaticLogFileName" value="false" />
   
<param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
   
<param name="RollingStyle" value="Date" />
   
<layout type="log4net.Layout.PatternLayout">
    
<param name="ConversionPattern" value="&lt;HR COLOR=blue&gt;%n日志时间:%d [%t] &lt;BR&gt;%n日志级别:%-5p 
   &lt;BR&gt;%n日 志 类:%c [%x] &lt;BR&gt;%n%&lt;BR&gt;%&lt;HR Size=1&gt;" />
   </layout>
  
</appender>
 
</log4net>
 
<system.web>
  
<compilation defaultLanguage="c#" debug="true" />
  
<customErrors mode="RemoteOnly" />
  
<authentication mode="Windows" />
  
<authorization>
   
<allow users="*" />
  
</authorization>
  
<trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
  
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
   cookieless
="false" timeout="20" />
  
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />
 
</system.web>
</configuration>

LOG操作类

using System;
using System.IO;

namespace TankAction.SystemLog
{
    
/// <summary>
    
/// LogHelper的摘要说明。
    
/// </summary>

    public class LogHelper
    
{
        
private SystemLog()
        
{
        }


        
public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");

        
public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");

        
public static void SetConfig()
        
{
            log4net.Config.DOMConfigurator.Configure();
        }


        
public static void SetConfig(FileInfo configFile)
        
{
            log4net.Config.DOMConfigurator.Configure(configFile); 
        }


        
public static void WriteLog(string info)
        
{
            
if(loginfo.IsInfoEnabled)
            
{
                loginfo.Info(info);
            }

        }


        
public static void WriteLog(string info,Exception se)
        
{
            
if(logerror.IsErrorEnabled)
            
{
                logerror.Error(info,se);
            }

        }

    }

}


Global.asax.cs文件配置如下:

  protected void Application_Start(Object sender, EventArgs e)
  
{
            SystemLog.SetConfig();
  }

  
protected void Application_Error(Object sender, EventArgs e)
  
{
   Exception objExp 
= HttpContext.Current.Server.GetLastError();
   LogHelper.WriteLog(
"\r\n客户机IP:"+ Request.UserHostAddress +"\r\n错误地址:"+ Request.Url +"\r\n异常信息:"+ Server.GetLastError().Message,objExp);
  }

eg:
   try
   {}
   catch(Exception ex)
   {
       LogHelper.WriteLog("ErrorInfo"ex);
   }