日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Log4Net总结

發布時間:2024/9/5 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Log4Net总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • Log4Net是用來記錄日志的,可以將程序運行過程中的信息輸出到一些地方(文件、數據庫、EventLog等),日志就是程序的黑匣子,可以通過日志查看系統的運行過程,從而發現系統的問題。日志的作用:將運行過程的步驟、成功失敗記錄下來,將關鍵性的數據記錄下來分析系統問題所在。Log4J
  • 看如鵬站內搜索的日志文件。對于網站來講,不能把異常信息顯示給用戶,異常信息只能記錄到日志,出了問題把日志文件發給開發人員,就能知道問題所在。
  • ?配置Log4Net環境
  • 新建一個WebApplication
  • 添加對log4net.dll的引用(bin\net\2.0\release)
  • 在Web.Config (或App.Config)添加配置,見Log4Net配置
  • 初始化:在程序最開始(Global.asax 中的Applaction_Start)加入log4net.Config.XmlConfigurator.Configure(); 注意不是加到頁面的Load()里。
  • 在要打印日志的地方LogManager.GetLogger(typeof(Program)).Debug("信息"); 。通過LogManager.GetLogger傳遞要記錄的日志類類名獲得這個類的ILog(這樣在日志文件中就能看到這條日志是哪個類輸出的了),然后調用Debug方法輸出消息。因為一個類內部不止一個地方要打印日志,所以一般把ILog聲明為一個static字段。
  • 輸出錯誤信息用ILog.Error方法,第二個參數可以傳遞Exception對象。log.Error("***錯誤"+ex),log.Error("***錯誤",ex)
    • Log4Net相關概念(*)
  • Appender:可以將日志輸出到不同的地方,不同的輸出目標對應不同的Appender:RollingFileAppender(滾動文件)、AdoNetAppender(數據庫)、SmtpAppender (郵件)等。
  • level(級別):標識這條日志信息的重要級別。None>Fatal>ERROR>WARN>DEBUG>INFO>ALL,設定一個Level,那么低于這個Level的日志是不會被寫到Appender中的。
  • Log4Net還可以設定多個Appender,可以實現同時將日志記錄到文件、數據、發送郵件等;可以設定不同的Appender的不同的Level,可以實現普通級別都記錄到文件,Error以上級別發送郵件;可以實現對不同的類設定不同的Appender;還可以自定義Appender,這樣可以自己實現將Error信息發短信等。
  • (*)除了Log4Net,還有Enterprise Library中的Logging Application Block、Apache的CommonLog 以及NLog等,都差不多。
  • ?

    ???? Log4Net下載地址

    ?

    注意:在VS2010中的控制臺項目引用Log4Net的時候要將項目的“目標框架”改為非“Client Profile”。

    1、Log4Net配置

    <configuration>

    ? <configSections>

    ??? <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

    ? </configSections>

    ? <log4net>

    ??? <!-- Define some output appenders -->

    ??? <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">

    ????? <file value="test.txt"/>

    ????? <appendToFile value="true"/>

    ????? <maxSizeRollBackups value="10"/>

    ????? <maximumFileSize value="1024KB"/>

    ????? <rollingStyle value="Size"/>

    ????? <staticLogFileName value="true"/>

    ????? <layout type="log4net.Layout.PatternLayout">

    ??????? <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>

    ????? </layout>

    ??? </appender>

    ??? <root>

    ????? <level value="DEBUG"/>

    ????? <appender-ref ref="RollingLogFileAppender"/>

    ??? </root>

    ? </log4net>

    </configuration>

    ?

    ?

    2、在 Global.asax 中的Applaction_Start()加入log4net.Config.XmlConfigurator.Configure();

    ?

    ?

    3、頁面測試:

    ?

    using log4net;

    namespace Log4NetTest

    {

    ??? public partial class Default : System.Web.UI.Page

    ??? {

    ??????? //一般一個類用一個ILog的靜態實例即可

    ??????? private static ILog logger = LogManager.GetLogger(typeof(Default));

    ??????? protected void Page_Load(object sender, EventArgs e)

    ??????? {???????????

    ??????? }

    ?

    ??????? protected void btnLog_Click(object sender, EventArgs e)

    ??????? {

    ??????????? //GetLogger一般傳遞代碼所在類的類名

    ??????????? //LogManager.GetLogger(typeof(Default)).Debug("我的第一條日志");

    ??????????? //ILog logger = LogManager.GetLogger(typeof(Default));

    ??????????? logger.Debug("我的第一條日志");//輸出調試信息

    ??????????? logger.Warn("服務器內存只有20MB了");

    ??????????? try

    ??????????? {

    ??????????????? int i = Convert.ToInt32(TextBox1.Text);

    ??????????? }

    ??????????? catch (Exception ex)

    ??????????? {

    ??????????????? //如果發生了異常,推薦吧異常對象做為第二個參數,這樣方便排查錯誤。

    ??????? ????????logger.Error("用戶輸入錯誤: "+TextBox1.Text ,?? ex);

    ??????????? }

    ??????? }

    ??? }

    }

    轉載于:https://www.cnblogs.com/qiuyueguangxuan/p/4020124.html

    總結

    以上是生活随笔為你收集整理的Log4Net总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。