zoukankan      html  css  js  c++  java
  • Log4net

    • web.config/app.config
      • root
      • logger
        • Logger是直接和应用程序交互的组件。Logger只是产生日志,然后由它引用的Appender记录到指定的媒介,并由Layout控制输出格式。
        • Logger提供了多种方式来记录一个日志消息,也可以有多个Logger同时存在。每个实例化的Logger对象对被log4net作为命名实体(Named Entity)来维护。log4net使用继承体系,也就是说假如存在两个Logger,名字分别为a.b.c和a.b。那么a.b就是a.b.c的祖先。每个Logger都继承了它祖先的属性。所有的Logger都从Root继承,Root本身也是一个Logger。
        • 日志的等级,它们由高到底分别为:OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL
        • Logger实现的ILog接口,ILog定义了5个方法(Debug,Inof,Warn,Error,Fatal)分别对不同的日志等级记录日志。这5个方法还有5个重载,可以穿exception作为参数。
      • appender
        • 用来定义日志的输出方式,即日志要写到那种介质上去。较常用的Log4net已经实现好了,直接在配置文件中调用即可,可参见上面配置文件例子;当然也可以自己写一个,需要从log4net.Appender.AppenderSkeleton类继承。它还可以通过配置Filters和Layout来实现日志的过滤和输出格式。
        • 如FileAppender,ConsoleAppender等
      • layouts
        • Layout用于控制Appender的输出格式,可以是线性的也可以是XML。
        • 一个Appender只能有一个Layout。
        • 最常用的Layout应该是经典格式的PatternLayout,其次是SimpleLayout,RawTimeStampLayout和ExceptionLayout。然后还有IRawLayout,XMLLayout等几个,使用较少。Layout可以自己实现,需要从log4net.Layout.LayoutSkeleton类继承,来输出一些特殊需要的格式,在后面扩展时就重新实现了一个Layout。
        • SimpleLayout简单输出格式,只输出日志级别与消息内容。
        • RawTimeStampLayout 用来格式化时间,在向数据库输出时会用到。样式如“yyyy-MM-dd HH:mm:ss“
        • ExceptionLayout需要给Logger的方法传入Exception对象作为参数才起作用,否则就什么也不输出。输出的时候会包含Message和Trace。
        • PatterLayout使用最多的一个Layout,能输出的信息很多,使用方式可参见上面例子中的配置文件。
      • filters
        • 使用过滤器可以过滤掉Appender输出的内容。过滤器通常有以下几种:
        • DenyAllFilter 阻止所有的日志事件被记录
        • LevelMatchFilter 只有指定等级的日志事件才被记录
        • LevelRangeFilter 日志等级在指定范围内的事件才被记录
        • LoggerMatchFilter 与Logger名称匹配,才记录
        • PropertyFilter 消息匹配指定的属性值时才被记录
        • StringMathFilter 消息匹配指定的字符串才被记录
    <?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>
    
    • 代码
      • ILog log = LogManager.GetLogger(“className”);
      • log.Warn(“”);
  • 相关阅读:
    经典网页设计:漂亮的个人作品集网站设计欣赏【中篇】
    引领网页设计潮流的优秀网页作品赏析《第二季》
    Chance – 功能强大的 JavaScript 随机数生成类库
    设计前沿:16款扁平风格 iOS 7 图标设计
    TwentyTwenty – 使用 jQuery 实现图片对比功能
    未来的 Web:九个不可思议的 WebGL 应用试验
    推荐25个帮助你提高技能的 CSS3 实战教程
    经典网页设计:顶尖的个人作品集网站设计欣赏【上篇】
    Smint – 用于单页网站制作的 jQuery 导航菜单插件
    关注经典:CSS Awards 获奖网站作品赏析《第一季》
  • 原文地址:https://www.cnblogs.com/wyp1988/p/14923365.html
Copyright © 2011-2022 走看看