log4net配置篇
<?xml version="1.0" encoding="utf-8"?>
<log4net debug="false">
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFileAppender" />
<appender-ref ref="ErrorRollingFileAppender" />
</root>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender" >
<param name="File" value="Log\Info\" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Composite"/>
<param name="CountDirection" value="-1"/>
<param name="MaxSizeRollBackups" value="-1"/>
<param name="MaximumFileSize" value="5MB"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyy-MM-dd\\HH".txt""/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d | 线程:[%t] | 级别:%-5p | 对象:%c | 信息: %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="WARN" />
</filter>
</appender>
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="ERROR">
<param name="File" value="Log\Error\" />
<!--是否续写-->
<param name="AppendToFile" value="true" />
<!--按照文件的大小进行变换日志文件-->
<param name="RollingStyle" value="Composite" />
<param name="CountDirection" value="-1"/>
<param name="MaxSizeRollBackups" value="-1"/>
<param name="MaximumFileSize" value="5MB"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyy-MM-dd\\HH".txt""/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d | 线程:[%t] | 级别:%-5p | 对象:%c | 信息: %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>
</log4net>
2.log4net配置文件介绍说明
log4net:log4net解析的配置节点
root:log对象的父类,log4net中获取的所有ILog对象都继承自root对象
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFileAppender" />
<appender-ref ref="ErrorRollingFileAppender" />
</root>
-----------level 基类ILog对象的日志级别
-----------appender-ref ILog对象的日志消息输出配置引用对象 ref的值就是所引用appender对象的name值
appender:输出对象
我这里用的是RollingFileAppender,输出文件的对象,下面就对这个对象的相关配置参数进行简要说明下:
------- <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender" > 定义appender名称以及实现对象
-------<param name="File" value="Log\Info\" />
文件路径,如果RollingStyle为Composite或Date,则这里设置为目录,文件名在DatePattern里设置,其他则这里要有文件名。已经扩展支持虚拟目录
------- <param name="AppendToFile" value="true" />
True/false,默认为true。当文件存在时,是否在原文件上追加内容。
-------<param name="RollingStyle" value="Composite"/>
创建新文件的方式,可选为Size(按文件大小),Date(按日期),Once(每启动一次创建一个文件),Composite(按日期及文件大小),默认为Composite
-------<param name="CountDirection" value="-1"/>
默认值为-1。当文件超过MaximumFileSize的大小时,如果要创建新的文件来存储日志,会根据CountDirection的值来重命名文件。大于-1的值时,file里指定的文件名会依次加上.0,.1,.2递增。当等于或小于-1时,创建依赖于MaxSizeRollBackups参数值,创建备份日志数。
-------<param name="MaxSizeRollBackups" value="-1"/>
备份日志数目,默认为0。在CountDirection为负数时有效。
-------<param name="MaximumFileSize" value="5MB"/>
当RollingStyle为Composite或Size,这里设置最大文件大小(可以KB,MB,GB为单位,默认为字节)
-------<param name="StaticLogFileName" value="false"/>
True/false,默认为true。为true时,RollingStyler的date值将无效。且为true时,需要在file里指定文件名,所有日志都会记录在这个文件里。
------- <param name="Threshold" value="Debug"></param>
起始日志级别,取值为下面文章讨论的预定义日志级别。低于此级别的日志不会被记录。
-------<param name="DatePattern" value="yyyy-MM-dd\\HH".txt""/>
当RollingStyle为Composite或Date,这里设置文件名格式
layout:可以有0或者说1个layout,当没有layout时,没有输出
-------<layout type="log4net.Layout.PatternLayout">
-------<conversionPattern value="%d | 线程:[%t] | 级别:%-5p | 对象:%c | 信息: %m%n" />
-------</layout>
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称
%L:输出语句所在的行号
%F:输出语句所在的文件名
%-数字:表示该项的最小长度,如果不够,则用空格填充
filter:可以有0或多个filter,当前appender授权的范围
-------<filter type="log4net.Filter.LevelRangeFilter">
-------<param name="LevelMin" value="DEBUG" />
-------<param name="LevelMax" value="WARN" />
-------</filter>
参考文章连接: