首先需在config文件的<configSections>节点中增加子节点配置。
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
</configSections>
 
接着在<configuration>节点下配置我们定义的log4net 节点
log4net节点下可以配置多个<appender>子节点,每个<appender>子节点代表一种日志记录方式,有以下几种:
 
AdoNetAppender:利用ADO.NET记录到数据库的日志。
AnsiColorTerminalAppender:在ANSI 窗口终端写下高亮度的日志事件。
AspNetTraceAppender:能用asp.net中Trace的方式查看记录的日志。
BufferingForwardingAppender:在输出到子Appenders之前先缓存日志事件。
ConsoleAppender:将日志输出到控制台。
EventLogAppender:将日志写到Windows Event Log. 
FileAppender:将日志写到文件中。
LocalSyslogAppender:将日志写到local syslog service (仅用于UNIX环境下). 
MemoryAppender:将日志存到内存缓冲区。
NetSendAppender:将日志输出到Windows Messenger service.这些日志信息将在用户终端的对话框中显示。
RemoteSyslogAppender:通过UDP网络协议将日志写到Remote syslog service。
RemotingAppender:通过.NET Remoting将日志写到远程接收端。
RollingFileAppender:将日志以回滚文件的形式写到文件中。
SmtpAppender:将日志写到邮件中。
TraceAppender:将日志写到.NET trace 系统。
UdpAppender:将日志connectionless UDP datagrams的形式送到远程宿主或以UdpClient的形式广播。
 
本文将介绍常用的FileAppender 、RollingFileAppender、 ConsoleAppender、AdoNetAppender 这三种记录方式的相关配置。
首先看看FileAppender
<!--定义输出到文件中-->
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<!--定义文件存放位置-->
<file value="D:\123.txt" />
<!--是否追加到文件-->
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<!--输出格式-->
<conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" />
</layout>
</appender>
 
RollingFileAppender
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--日志路径-->
<param name= "File" value= "D:\App_Log\servicelog\"/>
<!--是否是向文件中追加日志-->
<param name= "AppendToFile" value= "true"/>
<!--log保留天数-->
<param name= "MaxSizeRollBackups" value= ""/>
<!--日志文件名是否是固定不变的-->
<param name= "StaticLogFileName" value= "false"/>
<!--日志文件名格式为:--.log-->
<param name= "DatePattern" value= "yyyy-MM-dd&quot;.read.log&quot;"/>
<!--日志根据日期滚动-->
<param name= "RollingStyle" value= "Date"/>
<layout type="og4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n %loggername" />
</layout>
</appender>
ConsoleAppender
<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="ERROR" />
<foreColor value="Red, HighIntensity" />
</mapping>
<mapping>
<level value="Info" />
<foreColor value="Green" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%n%date{HH:mm:ss,fff} [%-5level] %m" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Info" />
<param name="LevelMax" value="Fatal" />
</filter>
</appender>
 
AdoNetAppender
<appender name="ErrorLog_DBLog" type="log4net.Appender.AdoNetAppender">
<bufferSize value="" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="data source= 172.17.22.12:1101;initial catalog=Gance;persist security info=True;user id=Fie_DEV;password=F_DEVDEV;Persist Security Info=True;" />
<commandText value="insert into [ErrorLog] ([ID],[LogMessage],[LogException],[Source],[LogDate],[LogLevel],[UserId],[LogModule],[ServerIp]) values (@id,@message,@exception, @source, @date, @level,@userid,@logmodule,@serverip)" />
<parameter>
<parameterName value="@id" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.RawPropertyLayout">
<key value="Id" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="-1" />
<layout type="log4net.Layout.PatternLayout" value="%message" />
</parameter>
<parameter>
<parameterName value="@exception" />
<dbType value="String" />
<size value="-1" />
<layout type="log4net.Layout.PatternLayout" value="%exception" />
</parameter>
<parameter>
<parameterName value="@source" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.RawPropertyLayout">
<key value="Source" />
</layout>
</parameter>
<parameter>
<parameterName value="@date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout"/>
</parameter>
<parameter>
<parameterName value="@level" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.PatternLayout" value="%level" />
</parameter>
<parameter>
<parameterName value="@userid" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.RawPropertyLayout">
<key value="UserId" />
</layout>
</parameter>
<parameter>
<parameterName value="@logmodule" />
<dbType value="Int16" />
<layout type="log4net.Layout.PatternLayout" value="%property{LogModule}" />
</parameter>
<parameter>
<parameterName value="@serverip" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.RawPropertyLayout">
<key value="ServerIp" />
</layout>
</parameter>
</appender>
 配置参数
 

轉換字符

效果

a

等同於 appdomain

appdomain

用于输出日誌事件發生的AppDomain的一個友好的名字

c

等同於logger

C

等同於type

class

等同於type

d

等同於date

date

用於輸出日誌事件在當前時區中的日期.若要輸出通用時間,請使用%utcdate模式.日期轉換指定符後可以跟隨一對閉合的花括號, 花括號裡面為日期格式指定符.例如: %date{HH:mm:ss,fff}或%date{dd MMM yyyy HH:mm:ss,fff},若沒有指定任何格式,默認為ISO8601(Iso8601DateFormatter).格式指定符和TOString的語法一樣.為了達到較好的效果,建議使用log4net日期格式化器.他們可以使用以下一個字符串”ABSOLUTE”,”DATE”,”ISO8601”來分別指定AbsoluteTimeDateFormatterDateTimeDateFormatter和Iso8601DateFormatter.例如: %date{ISO8601} or %date{ABSOLUTE}.這些專用的日期格式化器效果比ToString好很多.

exception

用於輸出連同日誌信息一起傳入的異常.如果一個異常對象被儲存在日誌記錄事件中,他將會被帶有trailing newline的模式輸出.否則,不會.

F

等同於 file

file

用於輸出引發日誌記錄請求的文件名稱.例如: c:\inetpub\wwwroot\logtest\webform1.aspx.cs警告:產生呼叫者的位置信息相當慢.盡量避免使用,除非執行速度不是問題.

identity

用於輸出當前用戶的用戶名(Principal.Identity.Name).警告:產生呼叫者的位置信息相當慢.盡量避免使用,除非執行速度不是問題.

l

等同於location

L

等同於line

location

用於輸出產生日誌記錄事件的呼叫者的位置信息.此位置信息依賴於CLI的實現,但是他通常為命名空間限制的方法且後用跟用圓括號括起來的呼叫者文件名和行號.例如:LogTest.WebForm1.Button3_Click(c:\inetpub\wwwroot\logtest\webform1.aspx.cs:93)位置信息非常有用.然而,他的產生相當慢. 盡量避免使用,除非執行速度不是問題.

level

用於輸入記錄事件的等級.

line

用於輸出引發日誌記錄請求的行號.警告:產生呼叫者的位置信息相當慢.盡量避免使用,除非執行速度不是問題.

logger

用於輸出日誌記錄事件的日誌名字.這個日誌轉換符後面可以跟精度,精度是十進制常量,用花括號括起來.如果指定了精度符,則只會輸出從右向左的相應數目的名字,默認為輸入全部.如下:日誌記錄器的名字為”a.b.c”, %logger{2}將會輸出”b.c”

m

等同於message

M

等同於 method

message

用於輸出應用程式提供給日誌記錄事件的信息.

mdc

MDC(舊名: ThreadContext.Properties)是聯合事件屬性的一部份.這個模式支持兼容性,但是等同於property.

method

用於輸出引發日誌記錄請求的方法的名字.警告:產生呼叫者的位置信息相當慢.盡量避免使用,除非執行速度不是問題.

n

等同於 newline

newline

換行,等同於”\n”或”\r\n”

p

等同於 level

P

等同於 property

properties

等同於 property

property

用於輸出一個事件的指定的屬性.屬性名字要以花括號括起來並且直接放到property後面.例如:%property{user}.日誌中的每一個屬性指都需要單獨指定.Properties是日誌記錄器或追加器添加到事件中的.默認屬性為log4net:HostName,它是引發產生記錄事件的機器名字.若果沒有指定關鍵字,比如: %property ,將會將鍵值以逗號分格列表

r

等同於 timestamp

t

等同於thread

timestamp

用於輸出從程式啟動到日誌記錄事件建立的時間,以毫秒記.

thread

用於輸出引發日誌記錄事件的線程的名字,若無線程名,則用線程號.

type

所用同logger警告:產生呼叫者的位置信息相當慢.盡量避免使用,除非執行速度不是問題.

u

等同於 identity

username

用於輸出當前用戶的WindowsIdentity警告:產生呼叫者的位置信息相當慢.盡量避免使用,除非執行速度不是問題.

utcdate

使用同date

w

等同於 username

x

等同於 ndc

X

等同於 mdc

%

%%輸出一個%

Log4net 配置详解的更多相关文章

  1. log4Net配置详解

    <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSe ...

  2. Log4Net使用详解

    1.Log4Net环境的搭建与基本配置 (1)Log4Net框架介绍     Log4net 是 Apache 下一个开放源码的项目,它是Log4j 的一个克隆版.我们可以控制日志信息的输出目的地.L ...

  3. (转)log4net使用详解

    说明:本程序演示如何利用log4net记录程序日志信息.log4net是一个功能著名的开源日志记录组件.利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库(包括M ...

  4. 转:log4net使用详解

    说明:本程序演示如何利用log4net记录程序日志信息.log4net是一个功能著名的开源日志记录组件.利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库(包括M ...

  5. Log4j配置详解(转)

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

  6. logback 常用配置详解<appender>

    logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的 ...

  7. [转]阿里巴巴数据库连接池 druid配置详解

    一.背景 java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色 ...

  8. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  9. logback配置详解3<filter>

    logback 常用配置详解(三) <filter> <filter>: 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之一.返回DENY ...

随机推荐

  1. 来,试试PERL

    试试,看看能否真的替代AWK,SED这些的... #!/usr/bin/perl print "hello, world!\n"; $line = <STDIN>; i ...

  2. Qt创建和使用动态链接库

    一.创建共享库 1.新其他建项目,选择C++库 2.选择共享库,并取项目名称,单击下一步.这里取名位mylib 3.按默认配置单击下一步至模块选项,选择所需支持的模块.这里勾选Qtcore和QtGui ...

  3. 使IE6同样支持圆角效果

    之前写到过,IE6不支持:hover效果的解决办法,其它这个跟它一样.IE6(7/8)不支持border-radius属性,所以其中的圆角效果显示不出来,可以通过引用ie-css3.htc的方法解决. ...

  4. C++中构造函数初始化成员列表总结

    1.只能在构造函数初始化列表初始化的成员变量的类型? a.const成员变量 b.引用类型的成员变量 c.static不能在初始化列表中进行初始化 d.类成员变量中有自定义类型的变量最好在初始化列表中 ...

  5. js基础例子

    创建变量 var obj=value; 其中obj是变量名; value表示可能是数字,数组,函数之类的 多变量进行计算 var a1=200,b1='hello',c1=400; var d1=c1 ...

  6. 免费邮件服务器:MailEnable

    官方网站地址:www.mailenable.com 下载最新版的 Standard Edition (FREE) 安装之前请留意安装指引就可以了,安装上去之后,直接就可以使用了 安装指引上写的清清楚楚 ...

  7. Direct3D 11的流水线

    流水线 流水线(Pipeline)是理解D3D必须要掌握的概念. 整个流水线有很多步骤,有的步骤是固定功能,不用怎么配置,有的步骤是要写代码的,也就是所谓的着色器程序(Shader). 一般来说,将流 ...

  8. Smack+Openfire 接收和发送文件

    转载请注明出处:http://blog.csdn.net/steelychen/article/details/37958839 发送文件须要提供准确的接收放username称(例:user2@192 ...

  9. stat(),lstat(),fstat() 获取文件/目录的相关信息

    stat 的使用 Linux有个命令,ls -l,效果如下: 这个命令能显示文件的类型.操作权限.硬链接数量.属主.所属组.大小.修改时间.文件名.它是怎么获得这些信息的呢,请看下面的讲解. stat ...

  10. c#、vb 自动属性

    vb示例: Public Property Name() As String = "Bob" 等效于 Private _name As String = "Bob&quo ...