转载自:http://yuri-liuyu.iteye.com/blog/954038。仅供学习,谢谢原文作者
首先介绍下logback的前世今生。
slf4j由log4j作者Ceki开发,逐步取代apahce commons logging。
logback由log4j作者Ceki开发,逐步取代log4j。
slf4j等于commons-logging,是各种日志实现的通用入口,会根据classpath中存在下面哪一个Jar来决定具体的日志实现库。
logback相比较log4j的优势
slf4j支持参数化的logger.error("帐号ID:{}不存在", userId);
告别了if(logger.isDebugEnable()) 时代。
另外logback的整体性能比log4j也较佳,hibernate等项目已经采用了slf4j。
要在工程里面使用logback需要以下jar文件:
slf4j-api-1.6.1.jar
下载地址:http://www.slf4j.org/dist/slf4j-1.6.1.zip
logback-access-0.9.29.jar
logback-classic-0.9.29.jar
logback-core-0.9.29.jar
下载地址:http://logback.qos.ch/dist/logback-0.9.29.zip
slf4j和logback的使用
1.如果日志的参数超过3个,需要写成
2.因为内部已优化,作者认为slf4j的logger不需要定义为static。
3.可设置缓存后批量写日志文件(但服务器如果重启,可能会丢失未写到磁盘的记录)
4.MDC,用Filter,将当前用户名等业务信息放入MDC中,在日志format定义中即可使用该变量。
5.JMS Appender用于告警, DB Appender用于业务日志等可以使用插件,如生成Log代码的Eclipse插件Log4E。
6.tomcat和glassfish中,设定日志路径为../logs/xxxx.log 都能将日志放入应用服务器本身的logs目录。
最后把最近完善的一个logback.xml贴上,毕竟实际项目中的文件最能说明问题。