技术开发 频道

在.Net中使用log4Net

在我的App.config中加入以下代码:

<configSections>
    
<section name="log4net"
      type
="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0"
    
/>
  
</configSections>
  
<log4net>
    
<root>
      
<level value="WARN" />
      
<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-file.txt" />//这样会在你的项目的debug目录下产生log-file.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 [%x]  - %m%n"
        
/>
      
</layout>
      
<filter type="log4net.Filter.LevelRangeFilter">
        
<param name="LevelMin" value="DEBUG" />
        
<param name="LevelMax" value="WARN" />
      
</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>

 

修改我们的AssemblyInfo.cs文件:

在AssemblyInfo.cs中加入一段代码:

[assembly: log4net.Config.DOMConfigurator()]这样程序会自动到App.config文件中找到<log4net>的结点,获取到相关信息.当然我也指定配置文件名等,我们就需要使用:[assembly:log4net.Config.DOMConfigurator(ConfigFile="filename", ConfigFileExtension="ext",Watch=true/false)]

ConfigFile:指出了我们的配置文件的路径及文件名,包括扩展名。

ConfigFileExtension:如果我们对被编译程序的程序集使用了不同的文件扩展名,那么我们需要定义这个属性,缺省的,程序集的配置文件扩展名为”config”。

Watch (Boolean属性): log4net框架用这个属性来确定是否需要在运行时监视文件的改变。如果这个属性为true,那么FileSystemWatcher将会被用来监视文件的改变,重命名,删除等事件。

logTesting

程序中的代码: 

log4net.ILog log = log4net.LogManager.GetLogger("testApp.Logging");

private void btnTest_Click(object sender, EventArgs e)
{
          log.Error(
"Tesing only");
}

输出的结果如下:

[Header]
2008-12-04 17:14:18,458ate [4100hread] Log4Net.Form1.btnTest_Click(C:\Users\John\Documents\Visual Studio 2008\Projects\Project1\Log4Net\Log4Net\Form1.cs:24)evel Log4Net.Form1.btnTest_Click(C:\Users\John\Documents\Visual Studio 2008\Projects\Project1\Log4Net\Log4Net\Form1.cs:24)ogger [dc] - Testing only

0
相关文章