博客园  :: 首页  :: 联系 :: 管理

log4net用法

Posted on 2007-09-30 14:32  sunrack  阅读(495)  评论(0)    收藏  举报
log4net是一个apache基金资助的项目log4j的.net移植版本,它是一个.net的dll,可以方便的加载到开发项目中,实现程序调试和运行的时候的日志信息输入,比.net自己提供的debug类和trace类要提供更多功能。

    整个讨论分为两部分,第一部分是howto部分,告诉读者如何用最快的方式使log4net运作起来,第二步部分是inside部分,和读者一起探讨关于log4net层次架构设计以及一些思想. 
    HOWTO部分:
    该部分给出一个范例,让你的第一个log4net范例尽快运行起来
    先决条件:作者假设用户能够使用visual studio 2003的ide编写.net的winform程序,以及用户已经从网站上下载了一份最新的log4net(当前最新版本的下载地址:http://cvs.apache.org/dist/incubator/log4net/1.2.9/incubating-log4net-1.2.9-beta.zip)
     第一步:新增项目,添加log4net引用.
    通过vs.net 2003建立一个项目,然后将log4net添加到项目引用中来   
       
    第二步:设置配置文件:
    建立对应项目的xml配置文件,log4net.config,文件内容如下:  
    
 1<?xml version="1.0" encoding="utf-8" ?>
 2<configuration>
 3    <configSections>
 4        <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
 5    </configSections>
 6    <log4net>
 7        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
 8            <layout type="log4net.Layout.PatternLayout">
 9                <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
10            </layout>
11        </appender>
12        <appender name="FileAppender" type="log4net.Appender.FileAppender">
13            <file value="c:/log-file.txt" />
14            <appendToFile value="true" />
15            <layout type="log4net.Layout.PatternLayout">
16                <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
17            </layout>
18        </appender>
19        <root>
20            <level value="INFO" />
21            <appender-ref ref="ConsoleAppender" />
22        </root>
23        <logger name="test.logger">
24            <level value="ALL" />
25            <appender-ref ref="FileAppender" />
26        </logger>        
27    </log4net>
28</configuration>
   
或者

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  
<configSections>
    
<section name="log4net" 
      type
="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0" />
  
</configSections>

  
<log4net>
    
<root>
      
<level value="ALL" />
      
<appender-ref ref="LogFileAppender" />
      
<appender-ref ref="ConsoleAppender" />
    
</root>

    
<logger name="testApp.Logging">
      
<level value="DEBUG"/>
    
</logger>

    
<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] "/>
        
<param name="Footer" value="[Footer] "/>
        
<param name="ConversionPattern" 
           value
="%d [%t] %-5p %c [%x]  - %m%n" 
         
/>
      
</layout>

      
<filter type="log4net.Filter.LevelRangeFilter">
        
<param name="LevelMin" value="DEBUG" />
        
<param name="LevelMax" value="OFF" />
      
</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>


第三步
:在程序中设置自动加载以及监视配置文件
    在AssemblyInfo.cs中增加如下语句:
   
1[assembly: log4net.Config.XmlConfigurator(Watch=true,ConfigFile="log4net.config")]

    第四步:测试使用
    在窗体中增加一个按钮,     
    并在该按钮的Click事件中增加如下代码:
   
        private void trigLogger_Click(object sender, System.EventArgs e)
        {
            ILog log 
= LogManager.GetLogger("test.logger");
            log.Info(
"Hello,World!");
        }

    然后首先将log4net.config复制到bin\Debug目录下,并运行程序,点击"Trigger Logger"按钮,可以看到结果大概  如下