log4net1.2.10 在asp.net 2.0当中的使用:写入文件或者数据库

 

本文示例代码下载: http://www.cnblogs.com/Files/lxinxuan/Log4Net_Test.rar

参考了 http://blog.csdn.net/woowindice/archive/2007/03/24/1540122.aspx
同时参考: http://www.cnblogs.com/dragonsuc/archive/2006/06/21/431888.aspx
这个介绍更全面些。

使用步骤:
1。下载log4net1.2.10 ,下载地址http://cvs.apache.org/dist/incubator/log4net/1.2.10/incubating-log4net-1.2.10.zip
2。添加log4net的引用到您的asp.net 2.0项目
3。asp.net2.0好象默认没有Global.asax文件了,所以要自己加一个。点项目右键来添加。
4。在Global.asax文件的Application_Start方法里增加代码:log4net.Config.XmlConfigurator.Configure();
5。在web.config文件里,编辑Configuration->Configsections 增加如下区域:
<section  name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
然后增加log4net区域如下:
  <log4net>
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
      <param name="File" value="c://Log4Net.log"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
      </layout>
    </appender>
    <logger name="File">
      <level value="Debug" />
      <appender-ref ref="LogFileAppender" />
    </logger>
  </log4net>

整个web.config文件例如:

<? xml version = " 1.0 " ?>
<!--  
    注意: 除了手动编辑此文件以外,您还可以使用 
    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
     “网站”
-> “Asp.Net 配置”选项。
    设置和注释的完整列表在 
    machine.config.comments 中,该文件通常位于 
    WindowsMicrosoft.NetFrameworkv2.xConfig 中
-->
< configuration >
  
< configSections >
    
< section  name = " log4net "  type = " log4net.Config.Log4NetConfigurationSectionHandler, log4net " />

  
</ configSections >
  
  
< appSettings >
    
< add key = " mt_url "  value = " http://61.175.132.123/mt?iscorpsend=false&amp;spid=%spid%&amp;mobileid=%mobileid%&amp;content=%content% " />
    
< add key = " net.bzbs.www.BssoftWebAPI "  value = " http://www.bzbs.net/bswebapi/BssoftWebAPI.asmx " />
  
</ appSettings >
  
< connectionStrings />
  
< system.web >
    
<!--  
            设置 compilation debug
= " true "  将调试符号插入
            已编译的页面中。但由于这会 
            影响性能,因此只在开发过程中将此值 
            设置为 
true
        
-->
    
< compilation debug = " true " />
    
<!--
            通过 
< authentication >  节可以配置 ASP.NET 使用的 
            安全身份验证模式,
            以标识传入的用户。 
        
-->
    
< authentication mode = " Windows " />
    
<!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 
< customErrors >  节可以配置相应的处理步骤。具体说来,
            开发人员通过该节可以配置
            要显示的 html 错误页
            以代替错误堆栈跟踪。

        
< customErrors mode = " RemoteOnly "  defaultRedirect = " GenericErrorPage.htm " >
            
< error statusCode = " 403 "  redirect = " NoAccess.htm "   />
            
< error statusCode = " 404 "  redirect = " FileNotFound.htm "   />              
            
-->
    
< customErrors mode = " Off "   />

    
</ system.web >
  
< log4net >

    
< appender name = " LogFileAppender "  type = " log4net.Appender.FileAppender " >
      
< param name = " File "  value = " c:/Log4Net.log " />
      
< layout type = " log4net.Layout.PatternLayout " >
        
< param name = " ConversionPattern "  value = " %d [%t] %-5p %c %m%n " />
      
</ layout >
    
</ appender >
    
< logger name = " File " >
      
< level value = " Debug "   />
      
< appender - ref   ref = " LogFileAppender "   />
    
</ logger >

  
</ log4net >


</ configuration >

 配置完毕!下面就可以使用log4net了,就跟java里的log4j一样
比如在Default.aspx.cs里添加代码:
log4net.ILog logger = log4net.LogManager.GetLogger("File");
 logger.Info(“测试log4net”);

=======================================
如果是写入数据库,则需要先建立数据库:
 CREATE TABLE [dbo].[Log] (
       [Id] [int] IDENTITY (1, 1) NOT NULL,
        [Date] [datetime] NOT NULL,
       [Thread] [varchar] (255) NOT NULL,
      [Level] [varchar] (50) NOT NULL,
       [Logger] [varchar] (255) NOT NULL,
       [Message] [varchar] (4000) NOT NULL,
       [Exception] [varchar] (2000) NULL
)
并且需要如下配置:

<!-- 以下是写入数据库 -->
  
< log4net debug = " false " >
    
< root >
      
< level value = " ALL "   />
      
< appender - ref   ref = " ADONetAppender "   />
    
</ root >
    
<!--
     定义loger的名称和使用的appender
    
-->
    
< logger name = " AA " >
      
< level value = " ALL " />
      
< appender - ref   ref = " ADONetAppender "   />
    
</ logger >
    
< appender name = " ADONetAppender "  type = " log4net.Appender.AdoNetAppender " >
      
<!--
      定义几条存入数据库 有2条时才写入数据库,没有两条叫缓存
      
-->
      
< bufferSize value = " 2 "   />
      
< connectionType value = " System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 "   />
      
< connectionString value = " database=Log;server=(local);User ID=log;Password=log "   />
      
< commandText value = " INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception) "   />
      
< parameter >
        
< parameterName value = " @log_date "   />
        
< dbType value = " DateTime "   />
        
< layout type = " log4net.Layout.RawTimeStampLayout "   />
      
</ parameter >
      
< parameter >
        
< parameterName value = " @thread "   />
        
< dbType value = " String "   />
        
< size value = " 255 "   />
        
< layout type = " log4net.Layout.PatternLayout " >
          
< conversionPattern value = " %thread "   />
        
</ layout >
      
</ parameter >
      
< parameter >
        
< parameterName value = " @log_level "   />
        
< dbType value = " String "   />
        
< size value = " 50 "   />
        
< layout type = " log4net.Layout.PatternLayout " >
          
< conversionPattern value = " %level "   />
        
</ layout >
      
</ parameter >
      
< parameter >
        
< parameterName value = " @logger "   />
        
< dbType value = " String "   />
        
< size value = " 255 "   />
        
< layout type = " log4net.Layout.PatternLayout " >
          
< conversionPattern value = " %logger "   />
        
</ layout >
      
</ parameter >
      
< parameter >
        
< parameterName value = " @message "   />
        
< dbType value = " String "   />
        
< size value = " 4000 "   />
        
< layout type = " log4net.Layout.PatternLayout " >
          
< conversionPattern value = " %message "   />
        
</ layout >
      
</ parameter >
      
< parameter >
        
< parameterName value = " @exception "   />
        
< dbType value = " String "   />
        
< size value = " 2000 "   />
        
< layout type = " log4net.Layout.ExceptionLayout "   />
      
</ parameter >
    
</ appender >
  
</ log4net >
调用代码:
log4net.ILog log  =  log4net.LogManager.GetLogger( " AA " );            // log.Logger.Name

log.Debug(
" 这是我在使用Log4Net " );

当我测试的时候,发现一个意外情况,就是 <bufferSize value="2" />这里,把2换成其他数字,仍然不起作用,每次依然是插入两条记录,不知道怎么回事...

 

同时参考: http://www.cnblogs.com/dragonsuc/archive/2006/06/21/431888.aspx
这个介绍更全面些

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值