zoukankan      html  css  js  c++  java
  • 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>

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

  • 相关阅读:
    thinkphp 防止sql注入
    Thinkphp模板怎么使用自定义函数
    Jquery 获取文件内容
    php,Allowed memory size of 8388608 bytes exhausted (tried to allocate 1298358 bytes)
    thinkphp 定位查询 Model:last您所请求的方法不存在!
    if condition volist
    thinkPHP 无法create,无法插入数据,提示非法数据对象
    eclipse 最有用的10个快捷键
    button 禁止
    thinkphp显示重复两次
  • 原文地址:https://www.cnblogs.com/cxd4321/p/2591142.html
Copyright © 2011-2022 走看看