log4net使用中遇到的一些问题

因为项目要记录日志,便于调试,在网上搜了一下。大部分的应用都是用的是log4net这个开源软件,所以我们也就采用了这个开源软件来记录日志信息。
比如说日志文件的配置以及日志的级别打印等功能许多网站上已经有很多的介绍,所以在这里也就不多赘述。
现在想说一下的就是日志过滤器的使用,看了一下别人写的例子,都是一笔代过,没有做详细的介绍,所以我们只好参考官方的API文档来配置了。
log4net里面的filter类常用的为:
1、DenyAllFilter
   拒绝所用的日志输出
   <filter type="log4net.Filter.LevelMatchFilter">
       <param name="LevelToMatch" value="DEBUG" />      
   </filter>
   <filter type="log4net.Filter.DenyAllFilter" />
   上面的配置是如果日志的输出级别不符合DEBUG要求的话,则不输出任何日志。
2、LevelMatchFilter
   这个类里面有两个属性,一个是LevelToMatch这个属性是你要匹配输出日志的级别,比如:
    <filter type="log4net.Filter.LevelMatchFilter">
       <param name="LevelToMatch" value="DEBUG" />      
    </filter>
   这样的话,只有级别是DEBUG的日志才能输出。
   另外这个类还有一个重要的属性就是AcceptOnMatch这个属性是设置如果这个条件匹配的话,是否接受输出打印,比如说:
    <filter type="log4net.Filter.LevelMatchFilter">
       <param name="LevelToMatch" value="DEBUG" />      
    </filter>
    <filter type="log4net.Filter.StringMatchFilter">
       <param name="StringToMatch" value="debug" />      
    </filter>
   如果日志的级别为DEBVG的话,也就是说符合了第一个Filter的条件,日志就输出,则StringMatchFilter就不执行了。如果这样写的话,就会继续向下执行过滤:
    <filter type="log4net.Filter.LevelMatchFilter">
       <param name="LevelToMatch" value="DEBUG" />  
       <AcceptOnMatch value="false"></AcceptOnMatch>   
    </filter>
    <filter type="log4net.Filter.StringMatchFilter">
       <param name="StringToMatch" value="debug" />      
    </filter>
   如果这样写的话,即使第一个Filter符合了条件则第二个Filter也会继续执行。
3、LevelRangeFilter
   配置文件是这样的:
    <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="DEBUG" />
        <param name="LevelMax" value="ERROR" />
    </filter>
4、LoggerMatchFilter
   配置文件是这样的:
    <filter type="log4net.Filter.LoggerMatchFilter">
        <param name="LoggerToMatch" value="Client" />
    </filter>
5、StringMatchFilter
   配置文件是这样的:
    <filter type="log4net.Filter.StringMatchFilter">
        <param name="StringToMatch" value="/blog/Client.Program" />
    </filter>

没有注意到一些细节问题,所以写的比较简单。。。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、概述 log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。本文主要是介绍如何在Visual Studio2008使用log4net快速创建系统日志,如何扩展以输出自定义字段。 2、一个简单的使用实例 第一步:在项目添加对log4net.dll的引用,这里引用版本是1.2.10.0。 第二步:程序启动时读取log4net的配置文件。 如果是CS程序,在根目录的Program.cs的Main方法添加: log4net.Config.XmlConfigurator.Configure(); 如果是BS程序,在根目录的Global.asax.cs(没有新建一个)的Application_Start方法添加: log4net.Config.XmlConfigurator.Configure(); 无论BS还是CS程序都可直接在项目的AssemblyInfo.cs文件里添加以下的语句: [assembly: log4net.Config .XmlConfigurator()] 也可以使用自定义的配置文件,具体请参见4.4 关联配置文件。 第三步:修改配置文件。如果是CS程序,则在默认的App.config文件(没有新建一个)添加内容;如果是BS程序,则添加到Web.config文件,添加内容一样,这里不再列出。 App.config文件添加内容如下: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </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" /> <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="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> </configuration> 第四步:在程序使用log4net.ILog log = log4net.LogManager.GetLogger("testApp.Logging");//获取一个日志记录器 log.Info(DateTime.Now.ToString() + ": login success");//写入一条新log 这样就将信息同时输出到控制台和写入到文件名为“log-file.txt”的文件,其“log-file.txt”文件的路径是当前程序运行所在目录;也可以定义为绝对路径,配置如: <param name="File" value="C:/log-file.txt" />就写入C盘根目录下log-file.txt文件

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值