這篇文章主要為大家詳細介紹了.net下log4net使用方法,以控制台應用程式為例,具有一定的參考價值,感興趣的小夥伴們可以參考一下
本文執行個體為大家分享了.net下log4net的使用方法,供大家參考,具體內容如下
這裡以控制台應用程式為例
首先是要添加引用:
安裝後可以看到項目中多了log4net的引用:
添加應用程式設定檔app.config,配置log4net
<?xml version="1.0" encoding="utf-8" ?><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"/> <!--每個檔案的大小。只在混合方式與檔案大小方式下使用。超出大小後在所有檔案名稱後自動增加正整數重新命名,數字最大的最早寫入。可用的單位:KB|MB|GB。不要使用小數,否則會一直寫入當前日誌--> <maximumFileSize value="1024KB"/> <!--按照何種方式產生多個記錄檔(日期[Date],檔案大小[Size],混合[Composite])--> <rollingStyle value="Size"/> <!--否唯寫到一個檔案中--> <staticLogFileName value="true"/> <layout type="log4net.Layout.PatternLayout"> <!--記錄時間:%date 線程ID:[%thread] 記錄層級:%-5level 記錄類:%logger 操作者ID:%property{Operator} 操作類型:%property{Action}%n 當前機器名:%property%n當前機器名及登入使用者:%username %n 記錄位置:%location%n 訊息描述:%property{Message}%n 異常:%exception%n 訊息:%message%newline%n%n--> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/> </layout> </appender> <root> <level value="DEBUG"/> <appender-ref ref="RollingLogFileAppender"/> </root> </log4net></configuration>
在Program.cs中添加代碼:
static void Main(string[] args){ log4net.Config.XmlConfigurator.Configure(); //建立日誌記錄組件執行個體 ILog log = log4net.LogManager.GetLogger(typeof(Program)); //記錄錯誤記錄檔 log.Error("發生了錯誤:", new Exception("log4net的測試錯誤資訊")); //記錄致命的錯誤 log.Fatal("發生了致命的錯誤:", new Exception("log4net測試致命資訊")); //記錄一般資訊 log.Info("log4net的一般資訊"); //記錄調試資訊 log.Debug("log4net的調試資訊"); //記錄警告資訊 log.Warn("log4net警告資訊"); Console.WriteLine("ok"); Console.ReadKey();}
運行程式
這裡是控制台應用程式 ,如果是Web應用程式,可以在Global.asax.cs中Application_Start方法中調用log4net.Config.XmlConfigurator.Configure(); 在Global.asax.cs中定義一個變數,並在Application_Error中擷取異常並記錄:
public class Global : System.Web.HttpApplication{ private static ILog log = LogManager.GetLogger(typeof(Global)); protected void Application_Start(object sender, EventArgs e) { log4net.Config.XmlConfigurator.Configure(); } 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) { log.Error("發生了異常",Server.GetLastError()); } protected void Session_End(object sender, EventArgs e) { } protected void Application_End(object sender, EventArgs e) { }}