log4net使用记录

 

1. log4net简介

log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。Java平台下,它还有一个姐妹组件——log4j。

log4net的下载地址:http://logging.apache.org/log4net/download.html

 

2. log4net的组成

log4net主要由五部分组成,分别为Appenders、Filters、Layouts、Loggers和Object Renders。

 

下面说一下日志的等级,它们由高到底分别为:

OFF > FATAL > ERROR > WARN > INFO > DEBUG  > ALL 

其中OFF表示停用所以日志记录,ALL表示所有日志都可以记录。

Logger实现的ILog接口,ILog定义了5个方法(Debug,Inof,Warn,Error,Fatal)分别对不同的日志等级记录日志。这5个方法还有5个重载。我们以Debug为例说明一下,其它的和它差不多。

 

 

示例

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="INFO_RollingFileAppender" type="log4net.Appender.RollingFileAppender" >
    <param name="Encoding" value="utf-8"/>
    <!--定义文件存放位置-->
    <file value="Logs\\Info\\Info.log" />
    <appendToFile value="true" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <rollingStyle value="Composite" />
    <!--最大变换数量-->
    <maxSizeRollBackups value="-1" />
    <!--最大文件大小-->
    <maximumFileSize value="10MB" />
    <!--日志文件名是否为静态-->
    <datePattern value="yyyy-MM-dd" />
    <layout type="log4net.Layout.PatternLayout">
      <!--输出格式-->
      <!--样例:[2022-03-09 16:03:48,629] Error-->
      <conversionPattern value="[%date]%c %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <param name="LevelMin" value="INFO" />
      <param name="LevelMax" value="INFO" />
    </filter>
  </appender>
  <appender name="ERROR_RollingFileAppender" type="log4net.Appender.RollingFileAppender" >
    <param name="Encoding" value="utf-8"/>
    <!--定义文件存放位置-->
    <file value="Logs\\Error\\Error.log" />
    <appendToFile value="true" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <rollingStyle value="Composite" />
    <!--最大变换数量-->
    <maxSizeRollBackups value="-1" />
    <!--最大文件大小-->
    <maximumFileSize value="10MB" />
    <!--日志文件名是否为静态-->
    <datePattern value="yyyy-MM-dd" />
    <layout type="log4net.Layout.PatternLayout">
      <!--输出格式-->
      <!--样例:[2022-03-09 16:03:48,629] Error-->
      <conversionPattern value="[%date] %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <param name="LevelMin" value="ERROR" />
      <param name="LevelMax" value="ERROR" />
    </filter>
  </appender>
  <appender name="StockJobAppender" type="log4net.Appender.RollingFileAppender" >
    <param name="Encoding" value="utf-8"/>
    <!--定义文件存放位置-->
    <file value="Logs\\Info\\TaskJob.log" />
    <appendToFile value="true" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <rollingStyle value="Composite" />
    <!--最大变换数量-->
    <maxSizeRollBackups value="-1" />
    <!--最大文件大小-->
    <maximumFileSize value="10MB" />
    <!--日志文件名是否为静态-->
    <datePattern value="yyyy-MM-dd" />
    <layout type="log4net.Layout.PatternLayout">
      <!--输出格式-->
      <!--样例:[2022-03-09 16:03:48,629] Error-->
      <conversionPattern value="[%date]%c %message%newline" />
    </layout>
  </appender>
  <root>
    <appender-ref ref="INFO_RollingFileAppender" />
    <appender-ref ref="ERROR_RollingFileAppender" />
    <level value="DEBUG" />
  </root>
  <logger name="NHibernate">
    <level value="WARN" />
  </logger>
  <logger name="StockJobLogger" additivity="false">
    <level value="DEBUG"></level>
    <appender-ref ref="StockJobAppender"/>
  </logger>
</log4net>

 

 

配置启用总体有两种方式:1.显式代码加载;2.配置使用;

显式代码加载

1.在系统启动的开始直接启用;

如可以在web 的global的appcation_start 里面使用代码 

log4net.Config.XmlConfigurator.Configure();  该函数有可选参数:fileName表示配置文件路径;

2.在要添加的系统中的程序集文件 properities/Assimbly.cs 添加配置

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config")],其中ConfigFile 参数可选,如果没设置,则从系统的配置文件加载配置,如果有设置,从设置的路径加载配置

 

配置加载

在系统的配置文件里面加上如下设置:

    <add key="log4net.Config" value="log4net.config"/>
    <add key="log4net.Config.Watch" value="True"/>

第一句 用于表示log4net需要加载的配置文件在哪里。如果是在系统配置文件,则直接写系统配置文件名称即可,如web项目写web.config,winform则写App.config

posted @ 2022-03-21 10:47  qingjiawen  阅读(50)  评论(0编辑  收藏  举报