log4net abc

小结一下log4net的使用
 
0.基本概念
1.在classlibrary中
2.在unittest中
3.在asp.net2.0中
 
 
0.基本概念
homepage:
http://logging.apache.org/log4net/
可以下载也可以从其他的一些项目中挖

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>

当然项目都是要将这个DLL AddReference进来
 
1.在classlibrary中
将上面的配置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中完成

具体操作:
在项目属性中的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

默认他是生成一个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();

posted @ 2006-02-27 15:07 nonocast 阅读(690) 评论(7) 编辑 收藏