Log4net是Apache公司的log4j™的.NET版本,用於幫助.NET開發人員將日志信息輸出到各種不同的輸出源(Appender),常見的輸出源包括控制台、日志文件和數據庫等。本篇主要討論如何在控制台應用程序中將日志文件輸出到控制台、日志文件和SQL Server數據庫中。
使用log4net非常簡單,只需要五個步驟即可完成,下面我們以控制台應用程序為例,說明如何使用log4net將日志輸出到控制台中。
我們首先演示最簡單的例子,將日志信息輸出到控制台,步驟如下:
1、我們首先創建一個控制台應用程序,取名為Log4netConsoleApplication,然後使用NuGet包管理器安裝log4net,最新穩定版本為2.0.5,安裝完畢後在項目的引用節點下會看到log4net程序集,說明安裝成功。
2、在Log4netConsoleApplication應用程序中展開Properties節點,雙擊AssemblyInfo.cs文件,在該文件最後添加如下代碼:
1 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4net.config", Watch = true)]
3、添加應用程序配置文件,並將其命名為Log4net.config(注意該文件名稱與上一步驟中的ConfigFile的值一致),然後查看該文件的屬性,將屬性“復制到輸出目錄”的值設置為“始終復制”。
4、編輯Log4net.config文件,文件內如如下所示:
1 <?xml version="1.0" encoding="utf-8" ?> 2 <configuration> 3 <configSections> 4 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 5 </configSections> 6 7 <log4net> 8 <!-- 將日志輸出到控制台 --> 9 <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> 10 <layout type="log4net.Layout.PatternLayout"> 11 <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> 12 </layout> 13 </appender> 14 15 <root> 16 <!-- 控制級別,由低到高:ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF --> 17 <!-- 比如定義級別為INFO,則INFO級別向下的級別,比如DEBUG日志將不會被記錄 --> 18 <!-- 如果沒有定義LEVEL的值,則缺省為DEBUG --> 19 <level value="ALL" /> 20 <!-- 將日志輸出到控制台 --> 21 <appender-ref ref="ConsoleAppender" /> 22 </root> 23 </log4net> 24 </configuration>
5、雙擊打開項目中的Program.cs文件,保證文件中的代碼如下所示:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace Log4netConsoleApplication 8 { 9 class Program 10 { 11 private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 12 static void Main(string[] args) 13 { 14 log.Debug("debug"); 15 log.Info("info"); 16 log.Warn("warn"); 17 log.Error("error"); 18 log.Fatal("fatal"); 19 20 Console.ReadKey(); 21 } 22 } 23 }
上述五個步驟完成,運行該控制台應用程序,即可看到在控制台窗口中輸出了日志信息,如下圖所示:
至此,如何將日志信息輸出到控制台就完成了。