幾乎全部的大型應用都會有本身的用於跟蹤調試的API。由於一旦程序被部署之後,就不太可能再利用專門的調試工具了。然而一個管理員可能須要有一套強大的日誌系統來診斷和修復配置上的問題。
經驗代表,日誌記錄每每是軟件開發週期中的重要組成部分。它具備如下幾個優勢:它能夠提供應用程序運行時的精確環境,可供開發人員儘快找到應用程序中的Bug;一旦在程序中加入了Log 輸出代碼,程序運行過程當中就能生成並輸出日誌信息而無需人工干預。另外,日誌信息能夠輸出到不一樣的地方(控制檯,文件等)以備之後研究之用。
Log4net就是爲這樣一個目的設計的,用於.NET開發環境的日誌記錄包。
html
官方網站:http://logging.apache.org/log4net/apache
Install-Package log4netapp
log4net.config
注意:將log4net.config的屬性「複製到輸出目錄」設置爲「始終複製」
工具
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <!--日誌路徑--> <param name= "File" value= "D:\App_Log\"/> <!--是不是向文件中追加日誌--> <param name= "AppendToFile" value= "true"/> <!--log保留天數--> <param name= "MaxSizeRollBackups" value= "10"/> <!--日誌文件名是不是固定不變的--> <param name= "StaticLogFileName" value= "false"/> <!--日誌文件名格式爲:2008-08-31.log--> <param name= "DatePattern" value= "yyyy-MM-dd".log""/> <!--日誌根據日期滾動--> <param name= "RollingStyle" value= "Date"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n %loggername" /> </layout> </appender> <!-- 控制檯前臺顯示日誌 --> <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender"> <mapping> <level value="ERROR" /> <foreColor value="Red, HighIntensity" /> </mapping> <mapping> <level value="Info" /> <foreColor value="Green" /> </mapping> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%n%date{HH:mm:ss,fff} [%-5level] %m" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="Info" /> <param name="LevelMax" value="Fatal" /> </filter> </appender> <root> <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) --> <level value="all" /> <appender-ref ref="ColoredConsoleAppender"/> <appender-ref ref="RollingLogFileAppender"/> </root> </log4net> </configuration>
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using log4net; using log4net.Config; namespace Log4net { class Program { static void Main(string[] args) { InitLog4Net(); var logger = LogManager.GetLogger(typeof(Program)); logger.Info("消息"); logger.Warn("警告"); logger.Error("異常"); logger.Fatal("錯誤"); Console.ReadLine(); } private static void InitLog4Net() { var logCfg = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config"); XmlConfigurator.ConfigureAndWatch(logCfg); } } }
log4net 有四種主要的組件,分別是Logger(記錄器), Repository(庫), Appender(附着器)以及 Layout(佈局).
外部Blog資源:http://www.cnblogs.com/dragon/archive/2005/03/24/124254.html
佈局
出處:http://www.cnblogs.com/jys509/p/4569874.htmlpost
==================================================================學習
另外再推薦兩個學習的地址:網站
log4net使用詳解this
=============================
==================================================================
屬性配置有兩種寫法:
<appendToFile value="true" /> <param name="appendToFile" value="true" />
以上兩種都是對的,看到的時候能夠不用糾結這個。
下面的是配置備份日誌,當日志文件超過指定大小的時候,則自動備份,不然超過指定大小的時候Log4net回自動刪除日誌文件,從新記錄。
<appender name="LogicLog" type="log4net.Appender.RollingFileAppender"> <file value="D:/LOG_TEST/Logic.log" /> <datePattern value="yyyyMMdd-HH'.txt'"/> <appendToFile value="true" /> <!--每一個文件的大小,默認大小是10MB。只在混合方式與文件大小方式下使用,超出大小的在文件名後自動增長1從新命名--> <param name="maximumFileSize" value="8MB" /> <!-- 最大備份的文件個數 --> <param name="MaxSizeRollBackups" value="7" /> <!--按照何種方式產生多個日誌文件(日期[Date],文件大小[Size],混合[Composite])--> <param name="RollingStyle" value="Composite" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%class %L] %-5p -%n%message%newline" /> </layout> </appender>
==================================================================