標籤:大小 configure maxsize except int 滾動 輸出 art cat
下面我給大家介紹一下記日雜-log4net組件使用,當程式發布有伺服器上,有時出現了錯誤, 都不知道出現在那,所以log4net組件很好解決這個問題。
1、添加開發包,並對log4net.dll的引用
2、在Web.Config (或App.Config)添加配置,
<configSections><!--一定要在所有節點之前-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
3、新增log4net 節點
<log4net>
<root>
<!-- 記錄層級 OFF(關閉),FATAL,ERROR,WARN,INFO,DEBUG,ALL(全部顯示) -->
<level value="ALL" />
<appender-ref ref="RollingFileTracer" />
</root>
<!-- Print only messages of level DEBUG or above in the packages -->
<appender name="RollingFileTracer" type="log4net.Appender.RollingFileAppender,log4net"> <!--RollingFileAppender 表示滾動日誌資訊-->
<param name="File" value="App_Data/Log/" /> <!--日誌資訊儲存的位置-->
<param name="AppendToFile" value="true" /> <!--是否是附加檔案,true為在原來檔案上追加內容-->
<param name="RollingStyle" value="Date" /> <!--檔案根據什麼來滾動儲存, 這裡是根據時間-->
<param name="MaxSizeRollBackups" value="10" /> <!--最多有多少個檔案,當大於這個數, 就會把最先的檔案刪除-->
<param name="MaximumFileSize" value="1MB" /> <!--每個檔案最大大小-->
<param name="DatePattern" value=""Logs_"yyyyMMdd".txt"" /> <!--記錄檔名格式-->
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /> <!--輸出格式-->
</layout>
</appender>
</log4net>
可以對存取層級進行控制, 調用時可以設為all 這樣調試資訊都會輸出到記錄檔中, 待程式穩定後,設為Warn 這樣調試資訊不會輸出到記錄檔中, 同時也不用修改代碼
4、初始化:在Global的Application_Start中寫(程式啟動的時候讀取配置)
log4net.Config.XmlConfigurator.Configure();
注意:一定要加入這個, 沒有加雖然8不會報錯但是不會任何效果
5、在Global的Application_Error記錄未處理的異常資訊
例:ILog ilog = LogManager.GetLogger(typeof(Global));
ilog.Error("系統發生未處理的異常資訊",Context.Error);
在mvc裡面可以手動添加這個方法
protected void Application_Error(object sender, EventArgs e)
{
//當系統中發生未處理的異常資訊, 這個方法會被調用
ILog ilog = LogManager.GetLogger(typeof(MvcApplication));
ilog.Error("系統發生未處理的異常資訊", Context.Error);
}
在要列印日誌的地方LogManager.GetLogger(typeof(Program)).Debug("資訊");
通過LogManager.GetLogger傳遞要記錄的日誌類類名獲得這個類的ILog(這樣在記錄檔中就能看到這條日誌是哪個類輸出的了),然後調用Debug方法輸出訊息。
因為一個類內部不止一個地方要列印日誌,所以一般把ILog聲明為一個static欄位。
輸出錯誤資訊用ILog.Error方法,第二個參數可以傳遞Exception對象。log.Error("***錯誤"+ex),log.Error("***錯誤",ex)
例:
private static ILog ilog = LogManager.GetLogger(typeof(WebForm1));
protected void Page_Load(object sender, EventArgs e)
{
ilog.Debug("調試資訊");
ilog.Info("資訊");
ilog.Warn("警告資訊");
ilog.Error("錯誤資訊");
ilog.Fatal("嚴重資訊");
}
記日雜-log4net組件使用