log4j,顾名思义是专门用来做日志的,有一些书和教程经常把这种非常简单的东西讲的乱作一团,让一些处于学习阶段的朋友看了以后,感觉晕头转向的,我曾经就是受害人之一,所以今天发表一篇,让学习的人一看就懂的小文章,希望对一些学习log4j和没用过log4j的朋友起到帮助.
log4j是Apache组织的一个开源项目,它是一个日志操作包,通过使用Log4j可以指定日志信息输出的目的地,如控制台,文件,GUI组件,NT的时间记录器,还可以控制每一条日志输出的格式,此外通过定义日志的级别,能够非常细致的控制日志的输出,最好的地方是这些功能可以通过一个配置文件来灵活的进行配置,而不需要修改程序代码.在应用程序中输出日志有三个目的:
1) 监视代码变量的变化情况,把详细信息记录到文件中,进行统计分析.
2) 跟踪代码运行轨迹,作为日后审计的依据.
3) 担当集成开发环境中的调试器的作用,向文件和控制器打印代码的调试信息.
首先我们要先了解点概念的东西,很简单,先知道它的6个基本类别,就是日志的级别.
1) fatal致命的
2) error错误
3) warn警告
4) info信息
5) debug调试
6) trace细节
在强调可重用组件的今天,除了自己从头到尾开发一个可重用的日志操作类以外,还有一个Apache为我们提供的一个强有力的现成的日志操作包Log4j.主要由三大组件构成:
1) Logger:负责生成日志,并能够对日志信息进行分类筛选.
2) Appender:定义了日志信息输出的目的地,指定日志信息应该被输出到什么地方.
3) Layout:指定日志信息的输出格式.
概念的东西就这么点,看看记住就OK了.主要是配置文件,这里我们就以一个JAVA工程当例子,因为这样简单明了,让人容易理解.我相信如果在一个简单的JAVA工程里能把log4j理解透彻了.就算换到别的工程里也应该融会贯通了.首先建一个JAVA工程,然后把log4j的jar包放入工程的classpath,就是放在工程的根目录就OK了.然后创建一个log4j.properties的文件,记住这个文件的名字是固定的.log4j会自己来寻找这个文件,至于这个文件的配置我们稍后在说.OK现在包导好了,配置文件也弄好了.我们在类里简单的调用log4j就可以使用了.下边是例子:
import org.apache.log4j.Logger;
public class Log {
static Logger log = Logger.getLogger(Log.class);
public static void main(String[] args) {
log.fatal("致命...");
log.error("错误...");
log.info("信息...");
log.debug("调试...");
}
}
#这里是定义了日志输出的级别DUBUG,然后声明一个控制台和文件,名字随便起.
log4j.rootLogger=DEBUG,console,file
#这里是配置日志输出控制台的相关属性
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %d [%t] (%F,%L) - %m%n
#这里是配置日志输出文件的相关属性
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=log.log
log4j.appender.file.MaxFileSize=100KB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p %d [%t] (%F,%L) - %m%n
OK,你调试通过了么?如果通过了,但是想知道配置文件里各各属性的具体含义,那么我在附件里上传了一份比较间接的log4j文档,是PDF格式的.Log4J.pdf在熟悉了文档里的相关配置的含义之后,稍加练习灵活运用就算掌握了log4j了.
posted on 2007-05-10 16:07
我心依旧 阅读(2543)
评论(8) 编辑 收藏