链接: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