目前应用最多、在网上介绍对多的日志框架,就是log4j和logback了。至于这两个框架的特性及区别,可以去相关论坛、博客去了解,这里着重讲述本人在项目中应用logback的经验。
在搜索logback相关应用说明时,总会看到紧密伴随的一个词——“slf4j”,你可以把它理解为一个日志整合框架,它像一个Facade,多个不同的日志框架可以协调工作,对外提供统一的日志操作接口,而底层的日志实现则可能存在多种。slf4j的功能类似common logging。所以,本人在项目中应用的是slf4j+logback,所以可以去除Spring中对common-logging的依赖。关于Spring中的日志工作说明及选择,可以参考下面的链接。
本人使用的是Spring MVC来开发的系统,使用slf4j+logback进行日志监控。使用的jar有log4j-over-slf4j.jar,logback-classic.jar,logback-core.jar,jcl-over-slf4j.jar,slf4j-api.jar和logback-ext-spring-0.1.1.jar。
由于我们在开发项目时,会依赖很多第三方的框架jar包,而这些框架中可能使用的log4j日志,那么log4j-over-slf4j.jar则可以将这些需要log4j完成的工作“转交”给slf4j来做。同理,jcl-over-slf4j.jar则是将Spring框架依赖的common logging的工作“转交”给slf4j来做。
导入相应的jar包后,先在项目的web.xml中添加如下配置。
ch.qos.logback.ext.spring.web.LogbackConfigListener logbackConfigLocation classpath:logback.xml
从上面的配置可以看到,logback的配置跟log4j很类似,需要指定一个监听器和配置文件的位置。值得注意的是,使用的LogbackConfigListener类在logback-ext-spring-0.1.1.jar中,所以需要添加对它的依赖。
本人在项目中使用logback的配置名为logback.xml,里面可以定义logbac的日志输出格式、日志级别、不同日志级别的文件输出等等。关于logback配置的学习可以参照《logback中文手册》及以下链接。
本人采用了网上晒成的一种产品上线时的logback配置方案,可以参照下面的链接。