生活随笔
收集整理的這篇文章主要介紹了
Log4net 列
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
配置<configuration>
<configSections>
<section name=
"log4net" type=
"System.Configuration.IgnoreSectionHandler"/>
</configSections><log4net>
<!--定義輸出到文件中-->
<appender name=
"LogFileAppender" type=
"log4net.Appender.RollingFileAppender">
<!--定義文件存放位置-->
<file value=
"Log\GALog\GaLog.txt" />
<appendToFile value=
"true" />
<rollingStyle value=
"Size" />
<maxSizeRollBackups value=
"100" />
<maximumFileSize value=
"1M" />
<staticLogFileName value=
"true" /><!--<param name=
"File" value=
"Log\\LogError\\" />
<param name=
"AppendToFile" value=
"true" />
<param name=
"MaxSizeRollBackups" value=
"100" />
<param name=
"MaxFileSize" value=
"2M" />
<param name=
"StaticLogFileName" value=
"false" />
<param name=
"DatePattern" value=
"yyyy-MM-dd".txt"" />
<param name=
"RollingStyle" value=
"Date" />--><layout type=
"log4net.Layout.PatternLayout"><!--每條日志起末的文字說明-->
<header value=
"=================================================Begin================================================= "/>
<footer value=
"=================================================End=================================================== "/>
<!--輸出格式-->
<!--樣例:
2008-
03-
26 13:
42:
32,
111 [
10] INFO Log4NetDemo.MainClass [(
null)] - info-->
<!--<conversionPattern value=
"%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />-->
<conversionPattern value=
"記錄時(shí)間:%date 線程ID:[%thread] 日志級(jí)別:%-5level 出錯(cuò)類:%logger property:[%property{NDC}] - 錯(cuò)誤描述:%message%newline" />
</layout>
</appender>
<!--定義輸出到控制臺(tái)命令行中-->
<appender name=
"ConsoleAppender" type=
"log4net.Appender.ConsoleAppender">
<layout type=
"log4net.Layout.PatternLayout">
<conversionPattern value=
"%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<!--定義輸出到windows事件中-->
<appender name=
"EventLogAppender" type=
"log4net.Appender.EventLogAppender">
<layout type=
"log4net.Layout.PatternLayout">
<conversionPattern value=
"%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<!--定義輸出到數(shù)據(jù)庫(kù)中,這里舉例輸出到Access數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)為C盤的log4net.mdb-->
<appender name=
"AdoNetAppender_Access" type=
"log4net.Appender.AdoNetAppender">
<connectionString value=
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb" />
<commandText value=
"INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" />
<!--定義各個(gè)參數(shù)-->
<parameter>
<parameterName value=
"@logDate" />
<dbType value=
"String" />
<size value=
"240" />
<layout type=
"log4net.Layout.PatternLayout">
<conversionPattern value=
"%date" />
</layout>
</parameter>
<parameter>
<parameterName value=
"@thread" />
<dbType value=
"String" />
<size value=
"240" />
<layout type=
"log4net.Layout.PatternLayout">
<conversionPattern value=
"%thread" />
</layout>
</parameter>
<parameter>
<parameterName value=
"@logLevel" />
<dbType value=
"String" />
<size value=
"240" />
<layout type=
"log4net.Layout.PatternLayout">
<conversionPattern value=
"%level" />
</layout>
</parameter>
<parameter>
<parameterName value=
"@logger" />
<dbType value=
"String" />
<size value=
"240" />
<layout type=
"log4net.Layout.PatternLayout">
<conversionPattern value=
"%logger" />
</layout>
</parameter>
<parameter>
<parameterName value=
"@message" />
<dbType value=
"String" />
<size value=
"240" />
<layout type=
"log4net.Layout.PatternLayout">
<conversionPattern value=
"%message" />
</layout>
</parameter>
</appender>
<!--定義日志的輸出媒介,下面定義日志以四種方式輸出。也可以下面的按照一種類型或其他類型輸出。-->
<root>
<!--文件形式記錄日志-->
<appender-
ref ref=
"LogFileAppender" />
<!--控制臺(tái)控制顯示日志-->
<!--<appender-
ref ref=
"ConsoleAppender" />-->
<!--Windows事件日志-->
<!--<appender-
ref ref=
"EventLogAppender" />-->
<!--
如果不啟用相應(yīng)的日志記錄,可以通過這種方式注釋掉
<appender-
ref ref=
"AdoNetAppender_Access" />
-->
</root></log4net></configuration>
.CS代碼using System;using System.Collections.Generic;
using System.Linq;
using System.Text;[assembly: log4net.Config.XmlConfigurator(Watch =
true)]
namespace ga
{
public class ExceptionLog
{
private static readonly log4net.ILog log =
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public static void WriteLog(
string remark, Exception ex)
{
try
{
log.Error(remark, ex);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}}
}
?
log4net里面的filter類常用的為:
1、DenyAllFilter
拒絕所用的日志輸出
<filter type="log4net.Filter.LevelMatchFilter">
<param name="LevelToMatch" value="DEBUG" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
上面的配置是如果日志的輸出級(jí)別不符合DEBUG要求的話,則不輸出任何日志。
2、LevelMatchFilter
這個(gè)類里面有兩個(gè)屬性,一個(gè)是LevelToMatch這個(gè)屬性是你要匹配輸出日志的級(jí)別,比如:
<filter type="log4net.Filter.LevelMatchFilter">
<param name="LevelToMatch" value="DEBUG" />
</filter>
這樣的話,只有級(jí)別是DEBUG的日志才能輸出。
另外這個(gè)類還有一個(gè)重要的屬性就是AcceptOnMatch這個(gè)屬性是設(shè)置如果這個(gè)條件匹配的話,是否接受輸出打印,比如說:
<filter type="log4net.Filter.LevelMatchFilter">
<param name="LevelToMatch" value="DEBUG" />
</filter>
<filter type="log4net.Filter.StringMatchFilter">
<param name="StringToMatch" value="debug" />
</filter>
如果日志的級(jí)別為DEBVG的話,也就是說符合了第一個(gè)Filter的條件,日志就輸出,則StringMatchFilter就不執(zhí)行了。如果這樣寫的話,就會(huì)繼續(xù)向下執(zhí)行過濾:
<filter type="log4net.Filter.LevelMatchFilter">
<param name="LevelToMatch" value="DEBUG" />
<AcceptOnMatch value="false"></AcceptOnMatch>
</filter>
<filter type="log4net.Filter.StringMatchFilter">
<param name="StringToMatch" value="debug" />
</filter>
如果這樣寫的話,即使第一個(gè)Filter符合了條件則第二個(gè)Filter也會(huì)繼續(xù)執(zhí)行。
3、LevelRangeFilter
配置文件是這樣的:
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="ERROR" />
</filter>
4、LoggerMatchFilter
配置文件是這樣的:
<filter type="log4net.Filter.LoggerMatchFilter">
<param name="LoggerToMatch" value="Client" />
</filter>
5、StringMatchFilter
配置文件是這樣的:
<filter type="log4net.Filter.StringMatchFilter">
<param name="StringToMatch" value="/blog/Client.Program" />
</filter>
轉(zhuǎn)載于:https://www.cnblogs.com/keyyang/p/4137720.html
總結(jié)
以上是生活随笔為你收集整理的Log4net 列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。