1 到官网下载release版后,找到对应framework的dll,将这个dll引用到winform项目中。
2 在AssemblyInfo.cs中添加程序集关联信息:
[assembly: log4net.Config.XmlConfigurator]
3 在app.config中配置log4net:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup ......>
......其他配置
</sectionGroup>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /></startup>
其他配置......
<log4net>
<!--定义输出到文件中-->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--定义文件存放位置-->
<file value="log\\"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'"/>
<staticLogFileName value="false"/>
<param name="MaxSizeRollBackups" value="100"/>
<layout type="log4net.Layout.PatternLayout">
<!--每条日志末尾的文字说明-->
<!--输出格式-->
<!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info-->
<conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n"/>
</layout>
</appender>
<root>
<level value="ALL"/>
<!--文件形式记录日志-->
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
</configuration>
代码:
log4net.ILog log = log4net.LogManager.GetLogger(typeof(FrmMain));
log.Info("Hello world!");
输出:
记录时间:2014-10-24 13:16:42,496
线程ID:[9]
日志级别: INFO
出错类:CommunicateTest.FrmMain property: [(null)] -
错误描述:Hello world!
记录时间:2014-10-24 13:16:42,569
线程ID:[9]
日志级别: INFO
出错类:CommunicateTest.FrmMain property: [(null)] -
错误描述:Hello world!
=================配置方式二====================
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0" />
</configSections>
<log4net>
<!-- 日志级别:
级别 允许的方法 Boolean属性 优先级别
OFF Highest
FATAL void Fatal(...); bool IsFatalEnabled;
RROR void Error(...); bool IsErrorEnabled;
WARN void Warn(...); bool IsWarnEnabled;
INFO void Info(...); bool IsInfoEnabled;
DEBUG void Debug(...); bool IsDebugEnabled;
ALL Lowest
-->
<root>
<level value="WARN" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
<logger name="namespace1">
<level value="DEBUG"/>
</logger>
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称,例如:
模式字符串为:%-10c -%m%n
代码为:
ILog log=LogManager.GetLogger(“Exam.Log”);
log.Debug(“Hello”);
则输出为下面的形式:
Exam.Log - Hello
%L:输出语句所在的行号
%F:输出语句所在的文件名
%-数字:表示该项的最小长度,如果不够,则用空格填充
-->
<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
<param name="File" value="./log.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header]\r\n"/>
<param name="Footer" value="[Footer]\r\n"/>
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
</log4net>
</configuration>
log4net.ILog log = log4net.LogManager.GetLogger(this.GetType());
[Footer]