http://logging.apache.org/log4net/
1.在WindowsApplication项目新增“应用程序配置文件”.
2.将一下内容Copy至“configuration”节点中
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="rollingFile" />
</root>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="log.txt" />
<param name="AppendToFile" value="false" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy.MM.dd" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value=" ----------------------header-------------------------- " />
<param name="Footer" value=" ----------------------footer-------------------------- " />
</layout>
</appender>
<appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<logger name="WindowsApplication1.Form1">
<level value="DEBUG" />
<appender-ref ref="rollingFile" />
<appender-ref ref="coloredConsoleApp" />
<appender-ref ref="SystemEvent" />
</logger>
</log4net>
3.在AssemblyInfo.cs文件中添加一下代码
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
4.在Form1测试事件代码
log4net.ILog log = log4net.LogManager.GetLogger(this.GetType());
log.Debug("debug");
log.Info("info");
log.Warn("warn");
log.Error("error");
MessageBox.Show("生成日志成功!");
5.差点忘了,添加对log4net.dll的引用。
6.运行程序,触发测试事件代码。在项目文件下bin\Debug目录下有个log.txt就是生成的日志文件,中间有记录的测试信息。
7。结束。(有空再来补充各项设置意义^_^,现在自己也不会)
这个只是在bin文件生成一个Log.txt文件。需要扩展的是 要在bin文件下生成一个log文件夹,然后再里面按照日期来生产log文件。(待续)
替换了这个部分<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" type="" value="log/" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd'log.txt'" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value=" ----------------------header-------------------------- " />
<param name="Footer" value=" ----------------------footer-------------------------- " />
</layout>
</appender>
就可以生成log文件夹,并在下面写日期文件名开头的log。
<!-- 日志输出格式化:
%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:输出语句所在的文件名
%-数字:表示该项的最小长度,如果不够,则用空格填充
-->
调用
类名及空间名 需符合 <logger name="WindowsApplication1.Form1"> name中的空间名和类名
log4net.ILog log = log4net.LogManager.GetLogger(this.GetType());
log.Debug("debug");
log.Info("info");
log.Warn("warn");
log.Error("error");