1. 程式人生 > >aspx頁面使用log4net記錄日誌步驟(單獨log4net.config檔案)

aspx頁面使用log4net記錄日誌步驟(單獨log4net.config檔案)

1.引用dll

2.web.config配置

<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.0"  />
  </configSections>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>

</configuration>

3.log4net.config配置

<?xml version="1.0" encoding="utf-8" ?>
<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".htm"" />
    <param name="RollingStyle" value="Date" />
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="<HR COLOR=red>%n異常時間:%d [%t] <BR>%n異常級別:%-5p <BR>%n異 常 類:%c [%x] <BR>%n%m <BR>%n <HR Size=1>"  />
    </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".htm"" />
		<param name="RollingStyle" value="Date" />
		<layout type="log4net.Layout.PatternLayout">
			<param name="ConversionPattern" value="<HR COLOR=blue>%n日誌時間:%d [%t] <BR>%n日誌級別:%-5p <BR>%n日 志 類:%c [%x] <BR>%n%m <BR>%n <HR Size=1>"  />  
   </layout>
	</appender>
</log4net>
同時,右鍵該檔案,屬性--“複製到輸出目錄”選擇“如果較新則複製”--“生成操作”選擇“無”。

4.AssemblyInfo.cs檔案增加一行:[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

5.global.asax.cs檔案

public class Global : System.Web.HttpApplication
    {

        protected void Application_Start(object sender, EventArgs e)
        {
            log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));
        }

        protected void Session_Start(object sender, EventArgs e)
        {

        }

        protected void Application_BeginRequest(object sender, EventArgs e)
        {

        }

        protected void Application_AuthenticateRequest(object sender, EventArgs e)
        {

        }

        protected void Application_Error(object sender, EventArgs e)
        {
            // 在出現未處理的錯誤時執行的程式碼
            Exception objExp = HttpContext.Current.Server.GetLastError();
            LogHelper.WriteLog("客戶機IP:" + Request.UserHostAddress + "<br />錯誤地址:" + Request.Url + "<br />異常資訊:" + Server.GetLastError().Message, objExp);

        }

        protected void Session_End(object sender, EventArgs e)
        {

        }

        protected void Application_End(object sender, EventArgs e)
        {

        }
    }

6.寫個助手類LogHelper.cs

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

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

        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);
            }
        }  
    }
7.跑個頁面測試。