log4net abc
小结一下log4net的使用
0.基本概念
1.在classlibrary中
2.在unittest中
3.在asp.net2.0中
1.在classlibrary中
2.在unittest中
3.在asp.net2.0中
可以下载也可以从其他的一些项目中挖
log4net自身的基本配置如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<appender name="DebugAppender" type="log4net.Appender.DebugAppender, log4net">
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="log/log.txt" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy.MM.dd" />
<param name="StaticLogFileName" value="true" />
<param name="CountDirection" value="1" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="DebugAppender" />
</root>
<logger name="NHibernate">
<level value="INFO" />
</logger>
</log4net>
</configuration>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<appender name="DebugAppender" type="log4net.Appender.DebugAppender, log4net">
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="log/log.txt" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy.MM.dd" />
<param name="StaticLogFileName" value="true" />
<param name="CountDirection" value="1" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="DebugAppender" />
</root>
<logger name="NHibernate">
<level value="INFO" />
</logger>
</log4net>
</configuration>
当然项目都是要将这个DLL AddReference进来
1.在classlibrary中
将上面的配置copy到app.config中即可
在AssemblyInfo.cs中加入[assembly: log4net.Config.XmlConfigurator( ConfigFileExtension = "config", Watch = true )]
将上面的配置copy到app.config中即可
在AssemblyInfo.cs中加入[assembly: log4net.Config.XmlConfigurator( ConfigFileExtension = "config", Watch = true )]
2.在unittest中
把前面的app.config复制到test project的Target目录中名字必须是 *.dll.config,这步可以在vs的Build Events中完成
把前面的app.config复制到test project的Target目录中名字必须是 *.dll.config,这步可以在vs的Build Events中完成
具体操作:
在项目属性中的Build Events中的Post-build event command line:
copy "$(ProjectDir)app.config" "$(SolutionDir)home.test\bin\Debug\home.test.dll.config"
这个是视具体的路径而定的
同样也需要在AssemblyInfo.cs中加入
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
3.在asp.net2.0中
这个与asp.net1.1下还是略有区别
显示要在App_Code中新建一个AssemblyInfo.cs
这个与asp.net1.1下还是略有区别
显示要在App_Code中新建一个AssemblyInfo.cs
默认他是生成一个AssemblyInfo的class,把里面的内容全删了,
然后在其中添加:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
整个AssemblyInfo就这一句就ok了
然后在Global.asax.cs中的Application_Start添加
log4net.Config.XmlConfigurator.Configure();
虽然就几步,有时候也够折腾的这于其他的配置网上太多了,我就不罗嗦了。
使用的时候也是类似log4j的
declare:
static readonly ILog logger = LogManager.GetLogger(typeof(xxx));
这里的xxx就是ClassName
use:
logger.Debug(...);
logger.Info(...);
4.在Winform中
都差不多了,唯一要注意的是需要在初始化中显示做配置这个动作
log4net.Config.XmlConfigurator.Configure();