[img]http://dl.iteye.com/upload/attachment/0081/0602/1d2cebe7-a646-3935-b3ea-6dc18f573d08.png[/img]
[size=medium]slf4j:Simple Logging Facade for Java。slf4j定义了一些接口规范。其他日志框架实现这些接口即可。(接口这玩意挺好的,可是java搞的太坑爹,侵入性的,动不了)
logback、slf4j-simple、slf4j-nop这些是直接实现slf4j接口的。
log4j、java.util.logging、common-logging这些不是根据slf4j来实现的,所以中间需要搞个adapter(适配器),如果把log4j比作两个卡的插座,适配器就是在两个孔的插座上面插的三个孔的插座,以此来适应slf4j的三孔标准。
[b]问:我的项目原来用log4j,现在想换成logback,怎么搞呢?[/b]
答:这个问题对应现实的问题就是:你家有个两插头的电饭煲,要换成三插头的电饭煲,可是你家的插座是两孔的(汗!!!)。你说能怎么搞呢?
1、把三插头的剪掉,连上个两插头的。(我去,那你换个毛三插头的电饭煲啊)
2、在两孔插座上插上个三孔插座。(三插头,so easy,oh yeah!)
log4j-over-slf4j就是“两孔插座上的那个三孔插座”,有了它,再加上图第二列logback相关包加上slf4j-api,搞定。(具体配置请看这里:[url]http://clojure.iteye.com/admin/blogs/1102648[/url])
一理通百理通,其他的log框架想互相转,就去找jcl-over-slf4j,osgi-over-slf4j等等这些个“三插头”转换器,转好了后,该咋用还咋用。如果找不到,自己写一个也不难。无非就是改名字的体力活,一一对应slf4j的接口方法,名字一个个改过去。
[/size]
[size=medium]slf4j:Simple Logging Facade for Java。slf4j定义了一些接口规范。其他日志框架实现这些接口即可。(接口这玩意挺好的,可是java搞的太坑爹,侵入性的,动不了)
logback、slf4j-simple、slf4j-nop这些是直接实现slf4j接口的。
log4j、java.util.logging、common-logging这些不是根据slf4j来实现的,所以中间需要搞个adapter(适配器),如果把log4j比作两个卡的插座,适配器就是在两个孔的插座上面插的三个孔的插座,以此来适应slf4j的三孔标准。
[b]问:我的项目原来用log4j,现在想换成logback,怎么搞呢?[/b]
答:这个问题对应现实的问题就是:你家有个两插头的电饭煲,要换成三插头的电饭煲,可是你家的插座是两孔的(汗!!!)。你说能怎么搞呢?
1、把三插头的剪掉,连上个两插头的。(我去,那你换个毛三插头的电饭煲啊)
2、在两孔插座上插上个三孔插座。(三插头,so easy,oh yeah!)
log4j-over-slf4j就是“两孔插座上的那个三孔插座”,有了它,再加上图第二列logback相关包加上slf4j-api,搞定。(具体配置请看这里:[url]http://clojure.iteye.com/admin/blogs/1102648[/url])
一理通百理通,其他的log框架想互相转,就去找jcl-over-slf4j,osgi-over-slf4j等等这些个“三插头”转换器,转好了后,该咋用还咋用。如果找不到,自己写一个也不难。无非就是改名字的体力活,一一对应slf4j的接口方法,名字一个个改过去。
[/size]