log4net部分配置说明
第一步:
添加并應用Log4net.dll。然后在Web.config文件中添加下面的配置局
?
<configSections>
????<section?name="log4net"?type="log4net.Config.Log4NetConfigurationSectionHandler,?log4net"?/>
</configSections>
第二步:
新建Log4Net.config的配置文件,并在其中添加下面的配置信息:
?
<?xml?version="1.0"?encoding="UTF-8"?>
<log4net?debug="false">
??<!--按日期分割日志文件?一天一個-->
??<appender?name="LogFileAppenderByDate"?type="log4net.Appender.RollingFileAppender"?>
????<!--是否續寫-->
????<param?name="AppendToFile"?value="true"?/>
????<!--最小鎖定模型以允許多個進程可以寫入同一個文件-->
????<param?name="LockingModel"?value="log4net.Appender.FileAppender.MinimalLock"?/>
????<param?name="StaticLogFileName"?value="true"?/>
????<!--保存路徑-->
????<param?name="File"?value="d:\Log\\"?/>
????<param?name="DatePattern"?value="yyyy-MM-dd.LOG"?/>
????<param?name="StaticLogFileName"?value="false"?/>
????<param?name="RollingStyle"?value="Date"?/>
????<layout?type="log4net.Layout.PatternLayout">
??????<param?name="ConversionPattern"?value="時間:%d?%n級別:%level?%n類名:%c%n文件:%F?第%L行%n日志內容:%m%n-----------------------------------------%n%n"?/>
????</layout>
??</appender>
??<!--按日志容量分割日志文件?10KB一個-->
??<appender?name="LogFileAppenderBySize"?type="log4net.Appender.RollingFileAppender"?>
????<!--是否續寫-->
????<param?name="AppendToFile"?value="true"?/>
????<!--最小鎖定模型以允許多個進程可以寫入同一個文件-->
????<param?name="LockingModel"?value="log4net.Appender.FileAppender.MinimalLock"?/>
????<param?name="StaticLogFileName"?value="true"?/>
????<!--按照文件的大小進行變換日志文件-->
????<param?name="RollingStyle"?value="Size"?/>
????<param?name="File"?value="log.txt"?/>
????<!--單個文件最大數量?好像只有在?按Size分割時有效-->
????<param?name="MaximumFileSize"?value="200KB"/>
????<!--保留的log文件數量?超過此數量后?自動刪除之前的???好像只有在?按Size分割時有效-->
????<param?name="MaxSizeRollBackups"?value="2"?/>
????<param?name="StaticLogFileName"?value="false"?/>
????<layout?type="log4net.Layout.PatternLayout">
??????<param?name="ConversionPattern"?value="發生時間:%d?%n事件級別:%level?%n相關類名:%c%n程序文件:%F?第%L行%n日志內容:%m%n-----------------------------------------%n%n"?/>
????</layout>
??</appender>
??<!--記錄日志到數據庫-->
??<appender?name="AdoNetAppender"?type="log4net.Appender.AdoNetAppender">
????<bufferSize?value="1"?/>
????<!--緩沖大小-->
????<connectionType?value="System.Data.SqlClient.SqlConnection,?System.Data,?Version=1.0.3300.0,?Culture=neutral,?PublicKeyToken=b77a5c561934e089"?/>
????<connectionString?value="Data?Source=.\SQLEXPRESS;Initial?Catalog=CVDS;User?ID=sa;Password=sasa"?/>
????<commandText?value="INSERT?INTO?Log([Date],[Thread],[Level],[Logger],[Message],[Exception])?VALUES?(@log_date,?@thread,?@log_level,?@logger,?@message,?@exception)"?/>
????<parameter>
??????<parameterName?value="@log_date"?/>
??????<dbType?value="DateTime"?/>
??????<layout?type="log4net.Layout.RawTimeStampLayout"?/>
????</parameter>
????<parameter>
??????<parameterName?value="@thread"?/>
??????<dbType?value="String"?/>
??????<size?value="255"?/>
??????<layout?type="log4net.Layout.PatternLayout">
????????<conversionPattern?value="%thread"?/>
??????</layout>
????</parameter>
????<parameter>
??????<parameterName?value="@log_level"?/>
??????<dbType?value="String"?/>
??????<size?value="50"?/>
??????<layout?type="log4net.Layout.PatternLayout">
????????<conversionPattern?value="%level"?/>
??????</layout>
????</parameter>
????<parameter>
??????<parameterName?value="@logger"?/>
??????<dbType?value="String"?/>
??????<size?value="255"?/>
??????<layout?type="log4net.Layout.PatternLayout">
????????<conversionPattern?value="%logger"?/>
??????</layout>
????</parameter>
????<parameter>
??????<parameterName?value="@message"?/>
??????<dbType?value="String"?/>
??????<size?value="4000"?/>
??????<layout?type="log4net.Layout.PatternLayout">
????????<conversionPattern?value="%message"?/>
??????</layout>
????</parameter>
????<parameter>
??????<parameterName?value="@exception"?/>
??????<dbType?value="String"?/>
??????<size?value="2000"?/>
??????<layout?type="log4net.Layout.ExceptionLayout"?/>
????</parameter>
??</appender>
??<root>
????<level?value="INFO"?/>
????<!--啟用按日期分割-->
????<appender-ref?ref="LogFileAppenderByDate"?/>
????<!--啟用按容量分割-->
????<!--<appender-ref?ref="LogFileAppenderBySize"?/>-->
????<!--啟用保存到數據庫-->
????<!--<appender-ref?ref="AdoNetAppender"?/>-->
??</root>
</log4net>
?
第三步:
在Global.asax文件中的Application_Start事件中添加如下代碼:
?
?protected?void?Application_Start(object?sender,?EventArgs?e)
??{
???????//?Code?that?runs?on?application?startup
??????log4net.Config.XmlConfigurator.ConfigureAndWatch(new?FileInfo(Server.MapPath("Log4Net.config")));??
??}
?
第四步:調用LOG4net 寫日志
?
?????????protected?void?Button2_Click(object?sender,?EventArgs?e)
????????{
?????????????????????ILog?logs?=?LogManager.GetLogger(typeof(TEST));
???????????logs.Fatal("Excption:這里就是要提示的LOG信息");
????????}
?
?
也可以通過寫一個LogHelper.cs類進行封裝:
?
using?System;
using?System.Collections.Generic;
using?System.Web;
using?log4net;
namespace?SBIT.Web.Class
{
????///?<summary>
????///?日志輔助類
????///?</summary>
????public?class?LogHelper
????{
????????private?static?ILog?log;
????????private?static?LogHelper?logHelper?=?null;
????????///?<summary>
????????///?初始化
????????///?</summary>
????????///?<returns></returns>
????????public?static?ILog?GetInstance()
????????{
????????????logHelper?=?new?LogHelper(null);
????????????return?log;
????????}
????????///?<summary>
????????///?初始化
????????///?</summary>
????????///?<param?name="configPath"></param>
????????///?<returns></returns>
????????public?static?ILog?GetInstance(string?configPath)
????????{
????????????logHelper?=?new?LogHelper(configPath);
????????????return?log;
????????}
????????///?<summary>
????????///?構造函數
????????///?</summary>
????????///?<param?name="configPath"></param>
????????private?LogHelper(string?configPath)
????????{
????????????if?(!string.IsNullOrEmpty(configPath))
????????????{
????????????????log?=?log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
????????????????log4net.Config.XmlConfigurator.Configure(new?System.IO.FileInfo(configPath));
????????????}
????????????else
????????????{
????????????????log?=?log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
????????????}
????????}
????}
}
通過封裝類寫日志的方法如下:
?
?private?static?readonly?ILog?logs?=?LogHelper.GetInstance();?//LogManager.GetLogger(typeof(TEST));
????????protected?void?Button2_Click(object?sender,?EventArgs?e)
????????{
????????????????logs.Fatal("Excption:這里就是要提示的LOG信息");
????????}
總結
以上是生活随笔為你收集整理的log4net部分配置说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 今天是神舟十二号发射一周年!官方晒航天员
- 下一篇: 日本公司开发新电容器!电动汽车最快1分钟