Log4Net培训

Log4Net培训文档

目录

一. 概述 (1)

二. Log4Net系统 (1)

1 程序结构 (1)

I Logger (1)

II Appender (2)

III Layout (5)

IV Filter (6)

2 日志级别 (6)

三. Log4Net的使用方法 (7)

1 编写配置信息 (7)

2 配置初始化 (7)

3 获得记录器 (7)

4 使用记录器进行记录 (7)

四. 扩展Log4Net (8)

1 对FileAppender和RollingLogFileAppender (8)

1 对RollingLogFileAppender (8)

2 对SmtpAppender (8)

五. 实例演示 (8)

一.概述

Log4Net是一开源软件。本文档对log4net的使用进行描述。

二.L og4Net系统

1程序结构

我们在使用Log4Net的时候,主要关注如下几个部分:

I Logger

日志记录器,我们在程序里使用这个管理器来进行日志记录操作。

在一份程序里可以有多个logger,每个logger都可以在配置文件控制,通过程序调用。

比如在配置文件里配置:

则在程序里,我们可以这样获得这个记录器:

private static log4net.ILog log = log4net.LogManager.GetLogger("MailLogger");

得到记录器之后,我们可以通过如下方法记录日志。

II Appender

日志记录设备,指我们希望把日志记录到数据库/文件,或者发邮件等,每种方式都有一个独立的Appender实现。

Appender通常都在配置文件里进行控制,对于我们来说,在程序里不显式使用,它由logger调用。

如在配置文件里定义:

当我们进行了这样的定义之后,只是说明了我们有了这个Appender,会不会使用这个Appender,则由logger配置节控制。

要使用这个Appender,在looger里设置:

则这个Appender会在写日志的时候调用。

多个Appender可以同时被一个logger使用,即一份日志可以保存到多个设备上。

定义一个appender,需要指定属性及参数,如下介绍常用的RollingLogFileAppender和SmtpAppender的定义。

RollingLogFileAppender(文件记录)参数:

SmtpAppender(邮件通知)

III Layout

日志布局设计器,指我们希望输出哪些数据,这些数据又以什么样的格式输出。Layout通常都在配置文件里进行控制,对于我们来说,在程序里不显式使用,它由Appender 调用。并且在Appender配置节里进行定义。

每个appender对应一个layout。常用的layout:

PatternLayout

IV Filter

日志过滤器。除了级别限制之外,我们还可以添加过滤器,以指示该日志是否需要记录。Filter通常都在配置文件里进行控制,对于我们来说,在程序里不显式使用,它由Appender 调用。

一个appender可以有多个filter,按在配置文件里出现的次序进行检查。常用的有:LevelRangeFilter

StringMatchFilter

2日志级别

日志的级别可以在多个地方定义,appender参数里的Threshold属性定义的level,logger 的level,root节点里的level,如果这三个地方均没有定义,则默认”Debug”级别。当这几个

地方有两个以上定义了level,则按下表的优先级,取最高优先级的level。此外,级别还受appender里定义的filter里的level范围限制。

各个级别的优先级如下:

三.L og4Net的使用方法

1编写配置信息

Log4net的行为控制大多都可以在配置文件里完成,因此,编写配置信息是使用Log4net 的必要步骤,同时也是最大的难点。

配置文件可以在web.config里,也可以放在独立的文件中。

2配置初始化

可在global程序启动事件里进行初始化。

void Application_Start(object sender, EventArgs e)

{

System.IO.FileInfo fileInfo = new

System.IO.FileInfo(Server.MapPath("/SystemConfig/log4netConfig.xml"));

//log4net.Config. XmlConfigurator.Configure(fileInfo);

log4net.Config.XmlConfigurator.ConfigureAndWatch(fileInfo);

}

3获得记录器

private static log4net.ILog log = log4net.LogManager.GetLogger("MailLogger");

4使用记录器进行记录

log.Error(message, e);

四.扩展Log4Net

1对FileAppender和RollingLogFileAppender

可在File配置节里用#开头,头一个下斜杠之前的字符表示虚拟目录路径

,则up表示虚拟目录

注:如虚拟目录不存在,则视为站点根目录下的文件夹

2对RollingLogFileAppender

可在DatePattern配置节里设置#{Disk_HostName},用以替换本地机器名称

如:

3对SmtpAppender

可在subject配置节里设置#{Disk_HostName},用以替换本地机器名称

如:

五.实例演示

示例源代码:

参考资料:

1,Log4net源代码

2,Log4net SDK

3,Log4net Manual

4,Log4net 文章(https://www.360docs.net/doc/f216142798.html,/archive/2006/06/02/415824.html)

相关文档
最新文档