您的位置:首页 > 运维架构

AOP学习之Log4net

2015-07-29 19:41 309 查看
log4net库是Apache log4j框架在Microsoft.NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。日志具备的优点:提供程序运行的精确环境,帮助开发人员找到程序中的bug。

安装:
Log4net的安装:

用户可以从http://logging.apache.org/log4net/下载log4net的源代码。解压软件包后,在解压的src目录下将log4net.sln载入Visual
Studio .NET,编译后可以得到log4net.dll。用户要在自己的程序里加入日志功能,只需将log4net.dll引入工程即可。

log4net
有四种主要的组件,分别是Logger(记录器),Repository(库),
Appender(附着器)以及Layout(布局)
Logger(记录器)

Logger是应用程序需要交互的主要组件,它用来产生日志消息。产生的日志消息并不直接显示,还要预先经过Layout的格式化处理后才会输出。
Log4Net采用继承的框架。为什么要使用继承框架呢?

为了重用Logger对象,你不必将它在不同的类或对象间传递,只需要用它的名字为参数调用就可以了。
在log4Net中,有一个叫LogManager的类,用来管理logger对象,这个类中有一个GetLogger()静态方法,用来检查Logger对象是否存在,如果存在,就返回,如果不存在,它会自动为我们创建一个Logger对象。
log4net.ILoglog = log4net.LogManager.GetLogger("logger-name");
日志级别




从上到下,级别依次降低。在log4net框架里,通过设置配置文件,每个日志对象都被分配了一个日志优先级别,如果没有级别,那么日志会从他的祖先出继承一个级别。在Log4net的日志级别方法请求中,必须是请求方法的级别高于日志级别时,才会执行,否则不会执行。
例如:
创建了一个日志对象,并且把他的级别设置为INFO,那么下面的3个方法那个不会被执行呢,答案是第2个方法不会被执行,因为Debug的级别比INFO日志级别低。

Logger.Info("message");


Logger.Debug("message");


Logger.Warn("message");


Repository(库)
主要用于负责日志对象组织结构的维护。

Appender(附着器)
什么叫附着器?在这里我个人理解就是依赖于某一组件上而进行工作的组件。通过查阅资料知道了,附着器的主要作用是用来定义输入介质,这样我们就可以控制日志是输出到控制台还是输出到日志文件中了,一个好的框架就应该能够产生多目的的输出。

Layout

Layout 组件用于向用户显示最后经过格式化的输出信息。输出信息可以以多种格式显示,主要依赖于我们采用的Layout组件类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: