亚洲精品亚洲人成在线观看麻豆,在线欧美视频一区,亚洲国产精品一区二区动图,色综合久久丁香婷婷

              當前位置:首頁 > IT技術(shù) > Web編程 > 正文

              log4net日志記錄
              2021-10-22 10:10:46

              ?

              ?

              log4Net是用來記錄日志的,可以將程序運行過程中的信息輸出到一些地方(文件,數(shù)據(jù)庫,EventLog等),日志就是程序的黑匣子,可以通過日志查看系統(tǒng)的運行過程,從而發(fā)現(xiàn)系統(tǒng)的問題。

              1.引用log4net.dll

              ? ?bin et2.0 elease,不要引用debug版本

              2.在Web.Config添加配置

              把下面配置信息加到web.config中



              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="Log/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>


              ?下面再解釋里面的節(jié)點。

              3.初始化:在程序最開始加入log4net.Config.XmlConfigurator.Configure();不要加到頁面的Load

              ? ?在Global.asax.cs中添加代碼



              log4net.Config.XmlConfigurator.Configure();//讀取了配置文件中關于log4Net配置信息


              將把日志寫到文件中的代碼改為:



              if (ex != null)
              {
              //將異常信息寫到日志文件中
              // string fileName = DateTime.Now.ToString("yyyy-MM-dd");
              // File.AppendAllText(filePath + fileName + ".txt", ex.ToString(), System.Text.Encoding.UTF8);
              ILog logger = LogManager.GetLogger("errorMsg");
              logger.Error(ex.ToString());
              }


              注意:引入的命名空間為:using log4net;不要引用到:using Common.Logging(這是spring中的日志記錄組件)

              執(zhí)行一段出錯的代碼,在項目的Log文件夾中,發(fā)現(xiàn)有一個test.txt日志信息文件,里面記錄了出錯的信息。

              其中第一行為:log4net日志記錄_錯誤日志記錄

              ?

              對配置的參數(shù)解釋:

              代碼:



              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="Log/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>


              Appender:可以將日志輸出到不同的地方,不同的輸出目標對應不同的Appender:RollingFileAppender(滾動文 ? ? ? ? ? ? ? ? ? ? ? 件)、AdoNetAppender(數(shù)據(jù)庫)、SmtpAppender (郵件)等。

              file: ?日志的文件名

              appendToFile:追加到文本后

              maximumFileSize:文件最大多少KB

              maxSizeRollBackups:最多存多少個日志文件,假設test.txt能存1M文件,當test.txt存滿了,log4net會創(chuàng)建別外一個文件假設叫test1.txt,然后把test.txt里的1M內(nèi)容復制到test1.txt里,然后清空test.txt里的內(nèi)容再裝日志信息,再滿了就再建一個文件假設叫test2.txt,同前面一樣,直到設定的最大文件數(shù)10個,再滿了,就會刪除第一個備份的內(nèi)容把現(xiàn)在的內(nèi)容移進去。

              rollingStyle:文件滾動的方式按大小

              staticLogFileName:靜態(tài)的文件名

              layout:日志文件的樣式,%date是日期,打開日志第一行可以看到,%thread出錯線程Id,%-5level錯誤的等級,%logger是global.asax.cs里的參數(shù),%message錯誤消息,%newline最后換行。

              ?

              4.完整的log4net配置

              前面的都是基本的配置,平時項目中可以用下面的配置存到App_Code文件夾下



              <log4net>
              <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
              <!-- Set root logger level to ERROR and its appenders -->
              <root>
              <level value="ALL"/>
              <appender-ref ref="SysAppender"/>
              </root>

              <!-- Print only messages of level DEBUG or above in the packages -->
              <logger name="WebLogger">
              <level value="DEBUG"/>
              </logger>

              <appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net" >
              <param name="File" value="App_Data/" />
              <param name="AppendToFile" value="true" />
              <param name="RollingStyle" value="Date" />
              <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" />
              <param name="Header" value="&#13;&#10;----------------------header--------------------------&#13;&#10;" />
              <param name="Footer" value="&#13;&#10;----------------------footer--------------------------&#13;&#10;" />
              </layout>
              </appender>
              <appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
              <layout type="log4net.Layout.PatternLayout,log4net">
              <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
              </layout>
              </appender>
              </log4net>


              RollingStyle:Date ? 按照日期記錄日志

              DatePattern:日志文件名

              StaticLogFileName:false 文件名動態(tài)的方式

              ?

              這樣就完成了,這里是把日志用文本的方式記錄,如果要把信息記錄在數(shù)據(jù)庫或以郵件的方式發(fā)送的話也是只改配置不需改代碼就可以的了,請自行查找相關配置。

              本文摘自 :https://blog.51cto.com/u

              開通會員,享受整站包年服務立即開通 >