链接:http://www.cnblogs.com/yaopengfei/p/9428206.html

一、Log4Net简介

Log4net是Java中从Log4j移植而来的开源日志框架的. net版本。它功能强大,可以将日志分为不同的级别,以不同的格式输出到不同的存储介质,如数据库、txt文件、内存缓冲区、邮件、控制台、ANSI终端、远程接收器等。这里主要介绍两种最常用的类型:txt文件和数据库。

Log4net将日志分为五个级别,分别是:FACTAL >:ERROR>:WARN>:INFO>:DEBUG,每个级别调用一组重载的方法。

官网地址:http://logging.apache.org/log4net/index.html

地址:https://www.nuget.org/packages/log4net/

Nuget安装:安装包log4net

最新版本:2.0.8

本节主要关注两种主要的存储介质:和,涵盖以下知识点:

.基本使用步骤。

②.初始化几种形式的关联配置文件。

③代码调用详解。

④配置文件详细说明。

MVC框架中的简单封装和调用。

二、基本使用步骤

我们以控制台程序为例,简单介绍一下Log4net将日志存储到txt文本文档中,然后详细讲解代码。

1.创建一个新的01-SimpleDemo控制台程序,并通过说明安装相应的程序集。

2.在默认配置文件app . config中配置,主要分为两部分:

A.在……里

& ltconfigSections>。

& ltsection name = " log 4 net " type = " log 4 net。log 4 net configurationsectionhandler,log4net" />;

& lt/config sections & gt;

B.在

& ltlog4net>。& ltappender>。& lt/appender>。& ltroot>。& lt/root>。& lt/log4net>。

详细代码如下:

& lt?xml version="1.0 "编码="utf-8 "?>。

& lt配置>。

& lt!-1.添加log4net的节点声明配置代码->:

& ltconfigSections>。

& ltsection name = " log 4 net " type = " log 4 net。log 4 net configurationsectionhandler,log4net" />;

& lt/config sections & gt;

& lt!-2.log4net的核心配置代码-->:

& ltlog4net>。

& lt!-将日志信息输出到以日期命名的文件中->:

& ltappender name = " rolling filepender " type = " log 4 net。追加器。滚动文件出现器" >;

& lt!-文件夹的位置->:

& lt文件值="D:MyLog1" />;

& ltappendToFile value="true" />

& lt!-动态生成文件名->:

& ltparam name = " StaticLogFileName " value = " false "/>

& lt!-以日期命名->:

& ltparam name = " date pattern " value = " yyyyymmdd "。日志"/>

第三,初始化配置文件

如前所述,是在默认配置文件app . config中配置的,可以通过代码log 4 net . config . xmlconfigurator . configure;或者可以以反射的形式初始化配置,可以达到同样的效果,代表两种形式的初始化配置文件。

PS:可以添加到当前使用的文件的命名空间中,对当前文件进行操作,也可以添加到Properties/AssemblyInfo.cs中,这样就不需要全局初始化项目了。

在实际项目中,默认配置文件可能包含大量关于框架的信息。这时候再把log4net的配置代码放进去,会显得有点乱,或者有些“妙”人会更改默认配置文件的名称。此时,使用上述两种默认方法并不容易。这种情况怎么处理?

这里重点介绍如何使用log 4 net . config . xmlconfigurator . configure;关联配置文件。

场景1:使用默认配置文件

1.代码配置:log 4 net . config . XML configurator . configure;

2.反射配置:

场景2:修改后的默认配置文件名为:App1.config

1.代码配置:首先将App1.config文件属性中的“生成操作”改为“嵌入式资源”,然后通过下面的代码进行配置。

装配装配=装配。GetExecutingAssembly;

var xml =程序集。GetManifestResourceStream

1.代码配置:首先将log4net.xml文件属性中的“generate operation”改为“embedded resource”,然后用下面的代码进行配置。

装配装配=装配。GetExecutingAssembly;

var xml =程序集。GetManifestResourceStream;

log4net。config . XMLConfigurator . configure;

注意:代码中的_01_SimpleDemo是空之间的名称。

场景4:无论默认配置文件的名称更改为还是创建一个单独的xml作为配置文件→都可以通过绝对路径进行处理

1.直接写绝对路径

log 4 net . config . XML configurator . configure;

2通过代码获取绝对路径

字符串程序集文件路径=程序集。GetExecutingAssembly。位置;

字符串assemblyDirPath =路径。getdirectory name;

string config file path = assembly dirpath+"//log 4 net . XML ";

log4net。config . XMLConfigurator . configure);

PS: B/S程序下,通过log 4 net . config . XML configurator . configure);来配置。

四.代码调用的详细说明

Log4net允许多个ILog对象同时存在,通过代码:ILog log = log manager . getlogger;去创造。

答:日志级别从高到低依次为FACTAL >:ERROR>:WARN>:INFO>:DEBUG,此外还有OFF和ALL。

几个注意事项:OFF表示不写所有信息,ALL表示写所有信息,我们也可以通过:

写日志有五种方法:调试、错误、致命、信息和警告,每种方法都有两个重载,如下图所示:

使用配置文件log4net.xml时共享调用代码:

装配装配=装配。GetExecutingAssembly;

var xml =程序集。GetManifestResourceStream;

log4net。config . XMLConfigurator . configure;

ILog log = LogManager。GetLogger;

日志。调试;

日志。Info;

日志。warn;

尝试

{

int。parse;

}

捕获

{

日志。错误;

}

日志。致命;

V.配置文件的详细说明

Log4net配置文件主要分为两部分:和

,自定义配置的节点代码是固定的,如下图所示,核心代码配置主要位于

几点注意:

1.自定义配置节点

2 、& ltroot>。& lt/root>。节点主要用于配置日志的输出级别和加载日志的输出方式。

a: level中的值表示将输出高于该值的日志级别,日志级别包括:off >;致命错误 >:错误 >:警告 >:信息 >:调试 >:全部,例如:

& ltlevel value="INFO " >& lt/level>。表示仅保存INFO及以上的日志级别。

Ps: off表示不写all信息,ALL表示写所有信息。

b:& lt;appender-ref>。& lt/appender-ref>。标签用于加载日志的输出路径代码,该代码通过ref与appender标签中的name属性相关联,例如:

& lt附录-参考参考。& lt/appender-ref>。指示如何打开txt文档来保存日志。

3 、& ltappender>。& lt/appender>。节点用于配置日志的输出路径。本节主要介绍文本文档和数据库的输出。

答:共享数据库的表结构。详细配置请参见下面的代码共享。注意字段类型的匹配,明确指定其长度。

b:关于txt文本文档的命名,可以存储在一个文件夹中,也可以按时间区分文件夹,命名方式可以动态+指定。

c:日志文件大小的描述和文件号的描述主要需要三个节点一起使用。

PS:首先在Size模式或Composite模式下配置RollingStyle节点,然后配置maximumFileSize节点设置每个文件的大小,最后配置MaxSizeRollBackups节点设置日志文件的数量。超过大小后,在所有要重命名的文件名后自动加正整数,最大的数写的最早。

简单地用下面的代码进行测试:

& ltparam name = " rolling style " value = " Composite "/>

& ltparam name = " maximumFileSize " value = " 10KB "/>

& ltparam name = " MaxSizeRollBackups " value = " 5 "/>

详细代码如下:

& lt?xml version="1.0 "编码="utf-8 "?>。

& lt配置>。

& lt!-1.添加log4net的自定义配置节点->:

& ltconfigSections>。

& ltsection name = " log 4 net " type = " log 4 net。log 4 net configurationsectionhandler,log4net" />;

& lt/config sections & gt;

& lt!-2.log4net的核心配置代码-->:

& ltlog4net>。

& lt!-配置日志输出路径->:

& lt!-1.输出方式将日志以回滚文件的形式写入文件-->:

& ltappender name = " rolling filepender " type = " log 4 net。追加器。滚动文件出现器" >;

& lt!-1.1文件夹位置->:

& ltparam name = " File " value = " D:my Log 1 "/>

& lt!-相对路径C/S程序生成在调试目录下->:

& lt!-& lt;param name = " File " value = "/Logs/"/& gt;->;

& lt!-1.2追加到文件->:

& ltparam name = " appendto file " value = " true "/>

& lt!-1.3使用最小锁定模型允许多个进程写入同一个文件->:

& ltlockingModel type="log4net。附件.文件附件+最小分配"/>;

& lt!-1.4配置Unicode编码->:

& lt编码值="UTF-8" />;

& lt!-1.5是不是只写一个文件->:

& ltparam name = " StaticLogFileName " value = " false "/>

& lt!-1.6配置如何生成多个日志文件->:

& ltparam name = " rolling style " value = " Composite "/>

& lt!-1.7介绍各种日志的命名和存储在磁盘上的形式->:

& lt!-1.7.1在根目录下,直接按日期命名txt文件。注意“,”的位置,转到空->:

& ltparam name = " DatePattern " value = " yyyy-MM-DD "。日志"/>

log4net.xml文件代码如下:

& lt?xml version="1.0 "编码="utf-8 "?>。

& lt配置>。

& lt!-1.添加log4net的自定义配置节点->:

& ltconfigSections>。

& ltsection name = " log 4 net " type = " log 4 net。log 4 net configurationsectionhandler,log4net" />;

& lt/config sections & gt;

& lt!-2.log4net的核心配置代码-->:

& ltlog4net>。

& lt!-配置日志输出路径->:

& lt!-1.输出方式将日志以回滚文件的形式写入文件-->:

& ltappender name = " rolling filepender " type = " log 4 net。追加器。滚动文件出现器" >;

& lt!-1.1文件夹位置->:

& ltparam name = " File " value = " D:my Log 1 "/>

& lt!-相对路径->:

& lt!-& lt;param name="File" value="Logs/" />->;

& lt!-1.2追加到文件->:

& ltparam name = " appendto file " value = " true "/>

& lt!-1.3使用最小锁定模型允许多个进程写入同一个文件->:

& ltlockingModel type="log4net。附件.文件附件+最小分配"/>;

& lt!-1.4配置Unicode编码->:

& lt编码值="UTF-8" />;

& lt!-1.5是不是只写一个文件->:

& ltparam name = " StaticLogFileName " value = " false "/>

& lt!-1.6配置如何生成多个日志文件->:

& ltparam name = " rolling style " value = " Composite "/>

& lt!-1.7介绍各种日志的命名和存储在磁盘上的形式->:

& lt!-1.7.1在根目录下,直接按日期命名txt文件。注意“,”的位置,转到空->:

& ltparam name = " DatePattern " value = " yyyy-MM-DD "。日志"/>

然后就可以开心的打电话测试了。

/// <。摘要>。

///测试log4net

///首先,需要在Global中初始化log4net

/// <。/summary>。

/// <。退货>。& lt/returns>。

公共行动结果索引

{

//FATAL>;错误 >:警告 >:信息 >:调试

后记。调试;

尝试

{

int。parse;

}

捕获

{

后记。调试;

}

后记。信息;

尝试

{

int。parse;

}

捕获

{

后记。信息;

}

后记。warn;

尝试

{

int。parse;

}

捕获

{

后记。Warn ;

}

后记。错误;

尝试

{

int。parse;

}

捕获

{

后记。错误;

}

后记。致命;

尝试

{

int。parse;

}

捕获

{

后记。致命;

}

返回视图;

}

看了这篇文章有收获吗?请转发给更多人分享~

●136号,直接输入该条的编号

1.《log4net .NET版开源日志框架Log4Net详解》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《log4net .NET版开源日志框架Log4Net详解》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/junshi/1782289.html