又见log4j

再一次学习log4j,正确的说,应该是第一次自学吧!在培训期间,做项目时用过它,那也是第一次听说它,只知道它能像Sys.out.println等的功能一样,格式化打印我们想要打印的信息,做日志记录,有助于我们调试错误。那时的我也只知道这些而已,自己也没有深入去研究去看过,当时也只会配制日志的级别,其它都不知道了!

由于,一直听说,log4j作的日志可以保存下来,供我们以后查看,一直也没有见识过和用过!因为,自己一直以来也只是把信息打印于控制台,所以也不知道怎样把打印的信息保存为文件。昨天,无意问我们公司的Java组负责人时,他说他也没有深入研究过,让我自己去看。我想也是,应该自己去研究一下的时候了!我还记得有一次参加面试的时候,一位面试官,问我log4j用了什么设计模式,因为没有研究过,我就给人家说有单例模式,也不知道说的对不对。不过,那次面试是因为自己没有工作经验,就没过!所以,我就决定好好研究一下。

昨天下载好资料后,想周未研究的,可今天负责人让我今天完成工作后,让我研究一下log4j,好以后工作中我们能更好的用它。今天我就花了些时间,好好看了一下自己下载的资料。

下面我分以下两部分总结:重要理论与例子实践。(不全面,只是我认为对我有用的地方。)

[理论]

一、主要组件

1、Logger:日志记录器。

Logger负责处理日志记录的大部分操作。

2、Appender:日志信息的输出目的地。

Appender负责控制日志记录操作的输出。

3、Layout:日志格式化器。

Layout负责格式化Append的输出。

二、输出级别

1、标准级别:DEBUG<INFO<WARN<ERROR<FATAL

2、如果一个日志的请求的级别高于或等于日志的级别那么它就能被启用。反之,将被禁用。一个没有被安排级别的Logger将从它的父辈中得到继承。这个规则总结如下:

基本的选择规则:假如在一个级别为q的Logger中发生一个级别为p的日志请求,如果p>=q,那么请求将被启用。

[实践](这里的具体参数意思我就不多做解释了,我认为这没有什么难的,不知道的可以自己去网上查一下,很多资料说明。)

### direct log messages to stdout ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ### direct messages to file hibernate.log ### log4j.appender.R=org.apache.log4j.FileAppender log4j.appender.R.File=d:/log/log11.txt log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n #log4j.appender.file=org.apache.log4j.RollingFileAppender #log4j.appender.file=org.apache.log4j.FileAppender #log4j.appender.file.File=../webapps/netagent/serverLog.html #log4j.appender.file.MaxFileSize=2048KB #log4j.appender.file.MaxBackupIndex=3 #log4j.appender.file.layout=org.apache.log4j.HTMLLayout ### set log levels - for more verbose logging change 'info' to 'debug' ### log4j.rootLogger=debug, stdout, R #log4j.rootLogger=error, file #log4j.logger.com=error log4j.logger.com=debug

这些也就是我现在知道的和掌握的了,因为时间问题,没有时间去看到底层与原理。但我在网上看到一篇,更深一点的文章《即时日志

记录:使用Jabber增强log4j的功能------学习如何使用自己的appender来扩展log4j框架》,文章我看了一点开始,写的很不错。可心让

大家更深入了解log4j的底层。我在这里只说明一点就是,我可以证明的是,log4j用到了 模板方法设计模式,再有其它我现在还不知道,有

待下次再深入研究,大家可以自己更好的研究了吧!这篇文章地址如下:

http://www.ibm.com/developerworks/cn/java/j-instlog/index.html#resources

由于自己技术水平与文学水平都有限,只是自己的学习笔记。如果感觉对自己有帮助,就看看;如果感觉写的太垃圾,就不用看了,不

好意思啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值