日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

log4net部分配置说明

發(fā)布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 log4net部分配置说明 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第一步:

添加并應(yīng)用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"?>

????<!--是否續(xù)寫-->
????<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日志內(nèi)容:%m%n-----------------------------------------%n%n"?/>
????</layout>
??</appender>

??<!--按日志容量分割日志文件?10KB一個-->
??<appender?name="LogFileAppenderBySize"?type="log4net.Appender.RollingFileAppender"?>
????<!--是否續(xù)寫-->
????<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"?/>
????<!--單個文件最大數(shù)量?好像只有在?按Size分割時有效-->
????<param?name="MaximumFileSize"?value="200KB"/>
????<!--保留的log文件數(shù)量?超過此數(shù)量后?自動刪除之前的???好像只有在?按Size分割時有效-->
????<param?name="MaxSizeRollBackups"?value="2"?/>

????<param?name="StaticLogFileName"?value="false"?/>
????<layout?type="log4net.Layout.PatternLayout">
??????<param?name="ConversionPattern"?value="發(fā)生時間:%d?%n事件級別:%level?%n相關(guān)類名:%c%n程序文件:%F?第%L行%n日志內(nèi)容:%m%n-----------------------------------------%n%n"?/>
????</layout>
??</appender>

??<!--記錄日志到數(shù)據(jù)庫-->
??<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"?/>-->
????<!--啟用保存到數(shù)據(jù)庫-->
????<!--<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")));??
??}

?

第四步:調(diào)用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>
????????///?構(gòu)造函數(shù)
????????///?</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信息");
????????}

總結(jié)

以上是生活随笔為你收集整理的log4net部分配置说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。