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组件类型。
安装:
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组件类型。
相关文章推荐
- sed用法小结
- 第五篇 学习OpenCV之视频处理
- 第五篇 学习OpenCV之视频处理
- hdu5322 Hope(dp)
- Linux目录结构及其详解--转载
- 怎样使模块不optimize
- linux下创建文件与目录时默认被赋予了什么样的权限?
- Linux下的调试工具
- linux系统管理之ip配置、yum本地仓库搭建、密码破解
- CentOS升级Python版本
- 第18/24周 乐观并发控制(Optimistic Concurrency)
- linux问题解决之--使用wget下载不了jdk问题的解决办法
- 大型网站架构演化
- linux命令行编辑快捷键
- LINUX c++ 遍历网卡列表
- c语言中调用shell脚本返回值问题分析
- 攻击网站的游戏(simple连续的三个数字)
- Opencv学习笔记(五)Harris角点检测
- UVA 714 - Copying Books
- linux学习笔记 - 磁盘分区