標籤:
較好的參考地址:
http://in3040.blog.163.com/blog/static/116702443201091354028744/
http://dev.tot.name/dotnet/html/2008121/20081201212538.htm
--------------------------------------------------
原文地址:http://blog.csdn.net/javc/archive/2009/03/25/4022677.aspx
web.config配置如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<!--錯誤記錄檔配置-->
<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" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n異常時間:%d [%t] %n異常層級:%-5p %n異 常 類:%c [%x] %n%m %n " />
</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" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n日誌時間:%d [%t] %n記錄層級:%-5p %n日 志 類:%c [%x] %n%m %n" />
</layout>
</appender>
<!--控制台-->
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
</layout>
</appender>
<!--log4net.LogManager.GetLogger("logerror")用這個來選擇這種類型-->
<logger name="logerror">
<level value="ERROR" />
<appender-ref ref="ErrorAppender" />
</logger>
<logger name="loginfo">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>
<root>
<level value="INFO" />
<appender-ref ref="InfoAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
</configuration>
LOG操作類
using System;
using System.IO;
/**//// <summary>
/// LogHelper的摘要說明。
/// </summary>
public class LogHelper
{
private SystemLog()
{
}
public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo"); //選擇<logger name="loginfo">的配置
public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror"); //選擇<logger name="logerror">的配置
public static void SetConfig()
{
log4net.Config.XmlConfigurator.Configure();
}
public static void SetConfig(FileInfo configFile)
{
log4net.Config.XmlConfigurator.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);
}
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);
}
以上本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/javc/archive/2009/03/25/4022677.aspx
1.調用步驟
1.config配置
2.初始化配置 log4net.Config.XmlConfigurator.Configure();
3.調用logger.Info("asdfasd");
2.細節詳解
1.Log4net架構定義了一個叫做LogManager的類,用來管理所有的logger對象。它有一個GetLogger()靜態方法,用我們提供的名字參數來檢索已經存在的Logger對象。如果架構裡不存在該Logger對象,它也會為我們建立一個Logger對象。代碼如下所示:
log4net.ILog log = log4net.LogManager.GetLogger("logger-name");
通常來說,我們會以類(class)的類型(type)為參數來調用GetLogger(),以便跟蹤我們進行中日誌記錄的類。傳遞的類(class)的類型(type)可以用typeof(Classname)方法來獲得,或者可以用如下的反射方法來獲得:
log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
儘管符號長了一些,但是後者可以用於一些場合,比如擷取調用方法的類(class)的類型(type)。
例: private void button1_Click(object sender, EventArgs e)
{
logger.Info("sdfasd");
}
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType 就為button1_Click這個方法所在的類的類型
2.配置XmlConfigurator
使用代碼初始化配置。
log4net.Config.XmlConfigurator.Configure(new FileInfo("test.log4net"));
使用 XmlConfigurator.ConfigureAndWatch() 方法除了初始化配置外,還會監測設定檔的變化,一旦發生修改,將自動重新整理配置。
我們還可以使用 XmlConfiguratorAttribute 代替 XmlConfigurator.Config()/ConfigureAndWatch(),ConfiguratorAttribute 用於定義與 Assembly 相關聯的設定檔名。
方式1: 關聯到 test.log4net,並監測變化。
[assembly: log4net.Config.XmlConfigurator(ConfigFile="test.log4net", Watch=true)]
方式2: 關聯到 test.exe.log4net (或 test.dll.log4net,檔案名稱首碼為當前程式集名稱),並監測變化。
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension="log4net", Watch=true)]
log4net logfornet 配置和用法