★★★★★FireGrass★★★★★

※※※※※ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞジ
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

自动日志组件 - Log4net应用

Posted on 2006-08-10 15:37  火草  阅读(527)  评论(1)    收藏  举报

1. 首先你应该下载log4net.dll并引入到你的项目References中.
2. 需要修改你的global.asa.cs. 配置application对象启动的时候加载log4net配置. 这一步是不可以缺少的

using System;
using System.Collections;
using System.ComponentModel;
using System.Web;
using System.Web.SessionState;
using log4net;
using System.IO;

[assembly: log4net.Config.XmlConfigurator(ConfigFile
="log.config", Watch=true)]

protected void Application_Start(Object sender, EventArgs e)
        {
            log4net.Config.XmlConfigurator.Configure(
new FileInfo("log.config"));
        }

如果是.net2.0的环境时,需要在项目上添加新项,Global.asax,添加代码:

void Application_Start(object sender, EventArgs e) 
{
   
// 在应用程序启动时运行的代码
   string VirtualPath = System.Configuration.ConfigurationManager.AppSettings["log4net.config"];
   
string PhysicalPath = System.Web.HttpContext.Current.Request.MapPath(VirtualPath);
    log4net.Config.XmlConfigurator.ConfigureAndWatch(
new System.IO.FileInfo(PhysicalPath));

}


3. 如果上面的代码中没有参数. 那么载入的就是缺省配置. 该配置必须设置于web.config中
根据上面的配置,在当前位置处新建一个log.config文件,内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  
<configSections>
    
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  
</configSections>
  
  
<log4net>
        
<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="yyyyMMdd" />
                
<param name="MaxSizeRollBackups" value="11" />
                
<param name="MaximumFileSize" value="5KB" />
                
<param name="RollingStyle" value="Size" />
                
<!--param name="StaticLogFileName" value="true" /-->
                
<layout type="log4net.Layout.PatternLayout,log4net">
                    
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
                
</layout>
                
<filter type="log4net.Filter.LevelRangeFilter"> 
                    
<param name="LevelMin" value="ALL" /> 
                    
<param name="LevelMax" value="OFF" /> 
                
</filter> 
        
</appender>
        
<appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTraceAppender" >
            
<layout type="log4net.Layout.PatternLayout">
                
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
            
</layout>
        
</appender>
        
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
            
<layout type="log4net.Layout.PatternLayout">
                
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
            
</layout>
        
</appender>
        
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
            
<param name="File" value="_LogData\Log.txt" />
            
<param name="AppendToFile" value="true" />
            
<param name="MaxSizeRollBackups" value="10" />
            
<param name="MaximumFileSize" value="5MB" />
            
<param name="RollingStyle" value="Size" />
            
<param name="StaticLogFileName" value="true" />
            
<layout type="log4net.Layout.PatternLayout">
                
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
            
</layout>
        
</appender>
            
<root>
                
<priority value="ALL" />
                
<appender-ref ref="rollingFile" />
            
</root>
    
</log4net> 


</configuration>

如果是配置在web.cofig中,只要把根节点 configuration 中的内容加入如到web.config中根节点 configuration 下
4.该 config section 声明了名为 log4net 的另外一个config
5. 以上定义了多个appender. 简单来说, 每一个 appender 都是一种输出介质.
6. root节点指定了选用的 appender. 本例选用了LogFileAppender. (文本文件输出). 在Appender定义中定义了输出的格式. 和目标文本文件所在位置. (起始位置是应用程序根目录. (web.config所在目录).
7. 到目前位置就配置好了log4net. 可以在我们的应用中直接使用了.
8. 以下说明应用方法:
要输出日志, 必须首先得到带有一个别名的logger.
使用以下命令
(C#):
log4net.ILog Logger logger = log4net.LogManager.GetLogger(this.GetType());
(可以直接使用GetType得到当前类名)
之后调用
logger.Info(string message);
logger.Error(string message);
logger.Debug(string message);
即可输出日志.

调试后可查找应用程序根目录下是否已经自动创建XxxxxApplication.log.txt文本文件.以及是否正确输出了日志.

log4net是一个非常完善的日志组件. 有着强大的可配置性. 有助于提高开发效率.

关于log4net的配置. 可参考apache组织的官方文档位于

http://logging.apache.org/log4net