slf4j.logback和commons-loging
来源:互联网 发布:在淘宝卖梨膏 编辑:程序博客网 时间:2024/06/13 09:15
步入职场,才首次对“日志”这个东西有了一个比较全面的认识。不像学生时代,随处的print语句,学校总是教不了什么有用的东西。
最近从事的工作,恰好是将工程中原有的log4j日志组件转换为logback。至于为什么要转换,本来是因为logback的性能要优于log4j,然而最新版本的log4j的降临,似乎又把这段差距弥补了。总之分配的任务就要用心做,并且还能从中学好很多有用的东西。下面,我就介绍一下log4j转换logback的方法,可能遇到的问题及解决方案。其中涉及到的jar包会在最后给出下载链接。
log4j切换到logback的步骤:
1.将logback-classic和logback-core的jar包引入到工程,将有关log4j的jar包从工程的classpath中移除。
2.确认工程引入了slf4j的jar包,作为日志的适配。
3.在工程中新建logback.xml文件,利用转换工具(地址:http://logback.qos.ch/translator/ ),将原来log4j配置文件(log4j.properties)的内容拷贝到转换工具中,转换为logback的对应配置,然后将转换后的内容存入logback.xml。
4.完成上述转换后,因为参数含义不同,要修改一些细微的地方:
配置内容
logback
log4j
%c{}
{0}打印类名,例:MyLog
{n}打印类名和包名的首字母,例:c.b.u.MyLog
{0}打印全路径类名,例:com.bs3.utils.MyLog
{1}打印类名,例:MyLog
{2}打印类名和上一层包名,例;utils.MyLog
{n}依此类推
日志文件名称样式
<File>log/rpt.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>log/rpt.log.%d{yyyyMMddHH}</fileNamePattern>
</rollingPolicy>
<!-- 去掉了 '.' -->
log4j.appender.RPT.File = log/rpt.log
log4j.appender.RPT.DatePattern ='.'yyyyMMdd
5.将工程中,由于缺失了log4j.jar引起的错误进行修正,改为利用logback实现。
可能遇到的问题及解决方案:
1.Log4j转换到logback后,运行后spring的日志都以红字输出到控制台,而不受logback控制。
因为Spring的日志默认采用commons-logging,解决方法是在工程中引入jcl-over-slf4j-1.6.1.jar,这样就将commons-logging与slf4j对接,再通过logback进行了日志的统一输出。
2.切换完成后,启动工程时会出现java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory这个错误。
原因是slf4j-api的jar包版本太低,改为slf4j-api-1.6.4.jar即可解决。
- slf4j.logback和commons-loging
- commons-loging 、log4j 、slf4j 、LogBack日志相关知识详解
- Java的那些日志---commons-loging 、log4j 、slf4j 、LogBack 的理解与区分
- logback,slf4j,log4j, commons-logging
- commons-logging log4j slf4j logback
- slf4j log4j logback JDK14Logger jcl commons-logging...
- log4j+logback+slf4j+commons-logging的区别
- log4j+logback+slf4j+commons-loggin的关系
- 【Java】日志知识总结和常用组合配置(commons-logging,log4j,slf4j,logback)
- slf4j+log4j和slf4j+logback…
- SLF4J和Logback日志框架
- java日志: logback和slf4j
- slf4j,log4j和logback简介
- logback, slf4j, log4j and commons-logging for Hadoop and Hbase
- log4j logback slf4j commons-logging java.util.logging的关系
- log4j+logback+slf4j+commons-logging的关系与调试
- commons-logging,log4j,logback,slf4j之间的关系详解。
- SLF4J LogBack
- project euler 68
- Java Servlet 工作原理
- java 包详细介绍
- S3C24XX DMA框架源码分析
- post方式出现乱码
- slf4j.logback和commons-loging
- C语言总结
- 织梦 CMS 几处突破点
- web.xml中listener作用及使用--实现记录网站的客户登录日志, 统计在线人数
- form内使用ajax异步请求错误
- C++11 thread
- unity 利用2d toolkit 实现按帧改变碰撞监测范围
- Android中全局变量被系统回收的问题
- Android触摸事件详解