Log4的一些基本用法

來源:互聯網
上載者:User

1。首先在webconfig裡面進行配置

<configuration>   <configSections>     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />   </configSections>   <log4net>     <root>       <priority value="ALL"/>       <appender-ref ref="TraceAppender"/>       <appender-ref ref="ConsoleAppender"/>       <appender-ref ref="RollingLogFileAppender"/>     </root>     <appender name="TraceAppender" type="log4net.Appender.TraceAppender">       <layout type="log4net.Layout.PatternLayout">         <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>       </layout>     </appender>     <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">       <layout type="log4net.Layout.PatternLayout">         <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>       </layout>     </appender>     <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">       <file value="Log/log/" />       <appendToFile value="true" />       <rollingStyle value="Date" />       <datePattern value=".yyyyMMdd'.html'" />       <staticLogFileName value="false" />       <layout type="log4net.Layout.PatternLayout">         <conversionPattern value="%d [%t] %-5p %c - %m%n" />       </layout>     </appender>   </log4net>

2.然後建立一個Loghelper的類

using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.IO; using log4net; /// <summary> /// LogHelp 的摘要說明 /// </summary> public class LogHelp {     public LogHelp()     {         //         // TODO: 在此處添加建構函式邏輯         //     }

    private const string LOG_REPOSITORY = "Default"; // this should likely be set in the web config.     private static ILog m_log;               public static void Init()     {         log4net.Config.XmlConfigurator.Configure();     }

    private static void DoLog(string message, LogMessageType messageType, Exception ex,  Type type)     {         m_log = LogManager.GetLogger(type);

        switch (messageType)         {             case LogMessageType.Debug:                 LogHelp.m_log.Debug(message, ex);                 break;

            case LogMessageType.Info:                 LogHelp.m_log.Info(message, ex);                 break;

            case LogMessageType.Warn:                 LogHelp.m_log.Warn(message, ex);                 break;

            case LogMessageType.Error:                 LogHelp.m_log.Error(message, ex);                 break;

            case LogMessageType.Fatal:                 LogHelp.m_log.Fatal(message, ex);                 break;         }     }     /*記錄層級*/     public enum LogMessageType     {         /// <summary>         /// 調試         /// </summary>         Debug,         /// <summary>         /// 資訊         /// </summary>         Info,         /// <summary>         /// 警告         /// </summary>         Warn,         /// <summary>         /// 錯誤         /// </summary>         Error,         /// <summary>         /// 致命錯誤         /// </summary>         Fatal     }

    public static void Write(string message, LogMessageType messageType)     {                DoLog(message, messageType, null, Type.GetType("System.Object"));     }

    public static void Write(string message, LogMessageType messageType, Type type)     {         DoLog(message, messageType, null, type);     }

    public static void Write(string message, LogMessageType messageType, Exception ex)     {         DoLog(message, messageType, ex, Type.GetType("System.Object"));     }

    public static void Write(string message, LogMessageType messageType, Exception ex,          Type type)     {         DoLog(message, messageType, ex, type);     }

    public static void Assert(bool condition, string message)     {         Assert(condition, message, Type.GetType("System.Object"));     }

    public static void Assert(bool condition, string message, Type type)     {         if (condition == false)             Write(message, LogMessageType.Info);     } } 3最後在global裡面寫入

<%@ Application Language="C#" %> <%@ Import Namespace="System.Diagnostics" %> <script runat="server">

    void Application_Start(object sender, EventArgs e)     {                LogHelp.Init();         LogHelp.Write("網站程式運行...<br>",LogHelp.LogMessageType.Info, this.GetType());     }         void Application_End(object sender, EventArgs e)     {           }             void Application_Error(object sender, EventArgs e)     {         // 在出現未處理的錯誤時啟動並執行代碼         Exception err = Server.GetLastError();

        if (err is Exception)         {             //StringBuilder sb = new StringBuilder();

            //if (Request.IsLocal)             //    sb.AppendLine(err.Message.ToString());             //else             //    sb.AppendLine(string.Format("系統程式發生異常。<br />錯誤資訊:{0}", err));             //Server.ClearError();             //AppError.WriteError(AppError.ErrorType.Error, sb.ToString());                         try             {                 LogHelp.Write("Exception:", LogHelp.LogMessageType.Error, err, this.GetType());             }             catch             {                 //日誌寫入失敗。。。             }                                   }           }

    void Session_Start(object sender, EventArgs e)     {         // 在新會話啟動時啟動並執行代碼         //Application.Lock();         //Application["count"] = Convert.ToInt32(Application["count"]) + 1;         //SqlParameter[] param ={ new SqlParameter("@counter", Application["count"].ToString()) };         //string procName = "dbo.UpdateCounter";         //DataBase.ExecuteQuery(procName,param);         //Application.UnLock();     }

    void Session_End(object sender, EventArgs e)     {         // 在會話結束時啟動並執行代碼。         // 注意: 只有在 Web.config 檔案中的 sessionstate 模式設定為         // InProc 時,才會引發 Session_End 事件。如果會話模式設定為 StateServer         // 或 SQLServer,則不會引發該事件。

    }        </script>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.