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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

log4net 在asp.net WEB应用程序中的配置

發(fā)布時(shí)間:2023/12/15 asp.net 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 log4net 在asp.net WEB应用程序中的配置 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我是一個(gè)三層架構(gòu)的應(yīng)用程序,將日志記錄放在了業(yè)務(wù)層,并寫(xiě)入了數(shù)據(jù)庫(kù),整個(gè)使用操作步驟為以下步驟。

第一步 編寫(xiě)配置文件

文件名稱為 log4net.config 內(nèi)容如下

?

<?xml version="1.0" encoding="utf-8"?>
<log4net>
? <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
??? <bufferSize value="1" />
??? <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
??? <connectionString value="server=fogwang;database=zzrd;uid=sa;pwd=sa;pooling=false;" />
??? <commandText value="INSERT INTO LogInfo ([dtDate],[sThread],[sLevel],[sLogger], [ClientIP], http://www.taodudu.cc/news/show-855281.html,[sMessage],[sException],OpreateType,UserAccount,UIOrSysAdmin,LogType) VALUES (@log_date, @thread, @log_level, @logger, @ClientIP, @PageUrl,@message, @exception,@OpreateType,@UserAccount,@UIOrSysAdmin,@LogType)" />
??? <parameter>
????? <parameterName value="@log_date" />
????? <dbType value="DateTime" />
????? <layout type="log4net.Layout.RawTimeStampLayout" />
??? </parameter>
??? <parameter>
????? <parameterName value="@thread" />
????? <dbType value="String" />
????? <size value="50" />
????? <layout type="log4net.Layout.PatternLayout">
??????? <conversionPattern value="%t" />
????? </layout>
??? </parameter>
??? <parameter>
????? <parameterName value="@log_level" />
????? <dbType value="String" />
????? <size value="200" />
????? <layout type="log4net.Layout.PatternLayout">
??????? <conversionPattern value="%p" />
????? </layout>
??? </parameter>
??? <parameter>
????? <parameterName value="@logger" />
????? <dbType value="String" />
????? <size value="200" />
????? <layout type="log4net.Layout.PatternLayout">
??????? <conversionPattern value="%logger" />
????? </layout>
??? </parameter>
??? <parameter>
????? <parameterName value="@ClientIP" />
????? <dbType value="String" />
????? <size value="50"></size>
????? <layout type="log4net.Layout.PatternLayout">
??????? <conversionPattern value="%properties{ClientIP}" />
????? </layout>
??? </parameter>
??? <parameter>
????? <parameterName value="@PageUrl" />
????? <dbType value="String" />
????? <size value="200"></size>
????? <layout type="log4net.Ext.Web.ReflectionLayout">
??????? <conversionPattern value="%properties{RequestUrl}" />
????? </layout>
??? </parameter>
??? <parameter>
????? <parameterName value="@OpreateType" />
????? <dbType value="String" />
????? <size value="50"></size>
????? <layout type="log4net.Ext.Web.ReflectionLayout">
??????? <conversionPattern value="%properties{OpreateType}" />
????? </layout>
??? </parameter>
??? <parameter>
????? <parameterName value="@UserAccount" />
????? <dbType value="String" />
????? <size value="50"></size>
????? <layout type="log4net.Ext.Web.ReflectionLayout">
??????? <conversionPattern value="%properties{UserAccount}" />
????? </layout>
??? </parameter>
??? <parameter>
????? <parameterName value="@UIOrSysAdmin" />
????? <dbType value="String" />
????? <size value="10"></size>
????? <layout type="log4net.Ext.Web.ReflectionLayout">
??????? <conversionPattern value="%properties{UIOrSysAdmin}" />
????? </layout>
??? </parameter>
??? <parameter>
????? <parameterName value="@LogType" />
????? <dbType value="String" />
????? <size value="50"></size>
????? <layout type="log4net.Ext.Web.ReflectionLayout">
??????? <conversionPattern value="%properties{LogType}" />
????? </layout>
??? </parameter>
??? <parameter>
????? <parameterName value="@message" />
????? <dbType value="String" />
????? <size value="3500" />
????? <layout type="log4net.Layout.PatternLayout">
??????? <conversionPattern value="%m" />
????? </layout>
??? </parameter>
??? <parameter>
????? <parameterName value="@exception" />
????? <dbType value="String" />
????? <size value="3500" />
????? <layout type="log4net.Layout.ExceptionLayout" />
??? </parameter>
? </appender>
? <!-- setup the root category, add the appenders and set the default level -->
? <root>
??? <level value="WARN"/>
??? <level value="INFO"/>
??? <level value="DEBUG"/>
??? <level value="FINE"/>
??? <appender-ref ref="ADONetAppender" />
? </root>
? <logger name="StellaLogger">
??? <level value="ALL"/>
??? <appender-ref ref="AdoNetAppender" />
? </logger>
</log4net>

?

附:配置文件解釋:

log4net.Layout.PatternLayout中的轉(zhuǎn)換模式(ConversionPattern)

%m(message):輸出的日志消息,如ILog.Debug(…)輸出的一條消息

%n(new line):換行

%d(datetime):輸出當(dāng)前語(yǔ)句運(yùn)行的時(shí)刻

%r(run time):輸出程序從運(yùn)行到執(zhí)行到當(dāng)前語(yǔ)句時(shí)消耗的毫秒數(shù)

%t(thread id):當(dāng)前語(yǔ)句所在的線程ID

%p(priority): 日志的當(dāng)前優(yōu)先級(jí)別,即DEBUG、INFO、WARN…等

%c(class):當(dāng)前日志對(duì)象的名稱,例如:

模式字符串為:%-10c -%m%n

代碼為:

ILog log=LogManager.GetLogger(“Exam.Log”);

log.Debug(“Hello”);

則輸出為下面的形式:

Exam.Log - Hello

%L:輸出語(yǔ)句所在的行號(hào)

%F:輸出語(yǔ)句所在的文件名

%-數(shù)字:表示該項(xiàng)的最小長(zhǎng)度,如果不夠,則用空格填充

例如,轉(zhuǎn)換模式為%r [%t]%-5p %c - %m%n 的 PatternLayout 將生成類似于以下內(nèi)容的輸出:

176 [main] INFO org.foo.Bar - Located nearest gas station.

?

第二步驟在業(yè)務(wù)層的屬性文件關(guān)聯(lián)配置文件:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4net/log4net.config", Watch = true)]

?

其中ConfigFile的屬性為放在顯示層中配置文件的位置

?

第三步在業(yè)務(wù)層中的使用:

#region 刪除記錄
????? /// <summary>
????? /// 刪除記錄
????? /// </summary>
????? /// <param name="id">ID(可多個(gè))</param>
????? /// <returns></returns>
????? public bool Delete ( string id )
????? {
????????? DataTable dt= dal.getNewsList("id,title,typename"," in in("+id+")");
????????? log4net.Ext.Web.IWebLog log = log4net.Ext.Web.WebLogManager.GetLogger(typeof(NewsBLL));


????????? log.Info("刪除新聞標(biāo)題:" + dt.Rows[0]["title"] + "新聞編號(hào):" + dt.Rows[0]["id"] + "類別:" + dt.Rows[0]["typename"], WebUtility.Comm.GetAdminOrUIUserCook()[0], WebUtility.Comm.GetIP(), WebUtility.Comm.GetUrl(), log4net.Ext.Web.WebLogImpl.OpreateType.刪除, log4net.Ext.Web.WebLogImpl.UIOrSys.后臺(tái), log4net.Ext.Web.WebLogImpl.LogType.信息操作日志);
????????? return dal.Delete ( id );
????? }
????? #endregion

第四步:讀取操作日志:

數(shù)據(jù)層代碼:

public class LogOpreateDAL
?? {
?????? public int Delete(string id)
?????? {
?????????? return SqlHelper.ExecuteNonQuery(DBConn.GetSqlConn(), CommandType.Text, "Delete LogInfo Where LogID In(" + id + ")");
?????? }

?????? public DataSet GetListByPage(string expcon, int pagesize, int CurrentPage, out int PageCount, out int RecordCount)
?????? {
?????????? PagerDAL dal = new PagerDAL();
?????????? return dal.GetPagerList(DBConn.GetSqlConn(), "LogInfo", "LogId", 1, "*", pagesize, CurrentPage, expcon, out PageCount, out RecordCount);
?????? }

?? }

顯示效果如下:

轉(zhuǎn)載于:https://www.cnblogs.com/fogwang/archive/2011/10/21/2666611.html

總結(jié)

以上是生活随笔為你收集整理的log4net 在asp.net WEB应用程序中的配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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