zoukankan      html  css  js  c++  java
  • 转载: NET中使用log4net记录日志

    在做目前的项目中用到别的小组开发的一个日记记录的类,今天打开源程序看了一下,原来是在log4net组件外又包了一层,于是自已试了试log4net组件的应用。

    一.简介
    log4net是apache组织开发的日志组件, 可以从http://logging.apache.org/log4net/downloads.html下载log4net的源代码。同log4j一样(java下的日志记录组件)用户要在自己的程序里加入日志功能,只需将log4net.dll引入工程即可。是一个开源项目. 可以以插件的形式应用在你的系统中。程序员在使用ErrorLog做日志记录的时候完全不用关心log4net的工作方式,只需简单的调用即可。

    二.Log4net配置

    1. 引用log4net.dll到项目中。

    2. 加载log4net配置,在使用log4net做日志记录之前必须要对log4net进行配置。
     可在程序集中设置[assembly: log4net.Config.DOMConfigurator()]
     也可在使用前设置log4net.Config.DOMConfigurator.Configure();
    这句话也可放到global中Application_Start,在application启动时加载

    3.可以看到上面的代码都没有参数. 是载入了缺省配置. 该配置必须设置于web.config或者app.config中。
    在web.cofig根节点 configuration 中加入如下section:
    <configSections>
      <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    </configSections>
     
    4.该 config section 声明了名为 log4net 的另外一个config section. 后者必须位于web.config根节点 configuration 下: 以下是一个示例:
    <log4net debug="false">
        <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
            <param name="File" value="XxxxApplication.log.txt" />
            <param name="datePattern" value="MM-dd HH:mm" />
            <param name="AppendToFile" value="true" />
            <layout type="log4net.Layout.PatternLayout">
                <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
            </layout>
        </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>
            <level value="DEBUG" />
            <appender-ref ref="LogFileAppender" />
        </root>
    </log4net>

    5. 以上定义了多个appender. 简单来说, 每一个 appender 都是一种输出介质。

    6. root节点指定了选用的 appender. 本例选用了LogFileAppender. (文本文件输出). 在Appender定义中定义了输出的格式. 和目标文本文件所在位置. (起始位置是应用程序根目录. (web.config所在目录).

    如此便配置好了log4net。

    7、关于配置中ConversionPattern 的转换符

    每种转换符号都以%开始,后面跟着一个格式符号和换符号。

    %-数字 :该项的最小长度,小于最小长度的用空格填充

    %m(message):输出的日志消息

    %n(new line):换行

    %d(datetime):输出当前语句运行的时刻

    %r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数

    %t(thread id):当前语句所在的线程ID

    %p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等

    %c(class):当前日志对象的名称,

    %L(line ):输出语句所在的行号

    %F(file name):输出语句所在的文件名

    如 "%-5p [%t]- %m%n" 

    log4net.ILog M_Log = LogManager.GetLogger(this.GetType());

    M_Log .Debug("Test");

    生成输出为

    DEBUG [main]- Test

    8、level级别

    在配置文件的ROOT里有<level value="DEBUG" />设置级别的语句

    level 有 ALL<DEBUG <INFO<WARN<ERROR<FATAL<OFF 这么几级,大小关系也是这样
    如果你调用 m_log.Info("message")
    即是INFO级别,如果设置的级别为<level value="ERROR" />那就输出不到日志文件,相反如果低于就能输出 
     

    三,使用log4net

    调用类的Debug、Info、Warn、Error、Fatal等方法,如果级别高于设置级别即可将日志写入日志文件。各种方法实现后的效果是一样的,仅是在日志文件中标注出等级。

  • 相关阅读:
    设计模式——策略模式
    设计模式——设计原则
    设计模式——工厂模式
    设计模式——装饰模式
    C#一些常用方法
    设计模式——代理模式
    设计模式——模板模式
    开始博客园之前的一些相对自己说的话
    Python02 分支结构
    dns轮训python 04
  • 原文地址:https://www.cnblogs.com/philzhou/p/log4net.html
Copyright © 2011-2022 走看看