X.d 笔记

小Web,大世界

0%

Log4j 2.0 新特性以及升级

前天Log4j2.0出了Release版本了。简单体验了一小下:总的来说,变的较大的,有以下几点:

  1. 不支持Java6以下的版本了
  2. 不支持properties文件做为配置了
  3. 支持插件、过滤器等
  4. 相比1.x,性能大幅度提升
    点进去看详细~

Apache Log4j 2.0

前天Apache Log4j2.0出了Release版本了。简单体验了一小下:总的来说,变的较大的,有以下几点

JAVA 6以上,性能提升

log4j 2.0 内部实现用了很多更新更快的特性,由于1.x兼容非常老版本的JAVA,log4j的核心SLF4J、Logback都是相当老旧的,无法升级导致性能低下。2.0版本更新了这些内核并使用了多核特性,在多线程情况下,2.0比1.X的吞吐率高出10倍以下,延时数量级别也低于1.X几倍

不再支持properties配置文件

log4j 2.0不支持之前的properties配置了,xml还是支持的(说明:配置也有变化,如果升级到2.0,即使是XML配置也需要有所修改),另外新支持json和yml

寻找配置如下:(2,3,4,5)找到第一个就会返回,

  1. 载入默认配置 “log4j.configurationFile” ,这个是log4j自带的,如果没有配置时,即完全使用默认配置
  2. 在classpath里面寻找 log4j2-test.json 或 log4j2-test.jsn
  3. 在classpath里面寻找 log4j2-test.xml
  4. 在classpath里面寻找 log4j2.json 或 log4j2.jsn
  5. 在classpath里面寻找 log4j2.xml
  6. 如果没有找到以上的,则使用DefaultConfiguration(控制台输出日志)

说明 :2.0不兼容1.X版本,升级需谨慎~2.0简化了配置项,即使是XML配置,升到2.0后也要做出一些修改,代码里面也有少量变动。具体可以

其它

  • 支持过滤器 : 支持输出过滤器
  • 插件化的设计 : 2.0使用插件化的设计结构,如果没有想要的Appender,可以自己扩展
  • BUG修复 : 修复了N项BUG

升级1.X到2.0

  1. 可以使用适配包兼容 log4j-1.x-api-2.0.jar ,不建议,官方也说了,即使你用了这个包,也不能解决全部问题,配置什么的还是要改
  2. 代码方面,主要是命名空间变了,比如 1.x 里面的 org.apache.log4j 在2.0里面是 org.apache.logging.log4j,类也有变化 比如1.x里面的org.apache.log4j.Logger.getLogger() 在2.0里面是 org.apache.logging.log4j.LogManager.getLogger(). 还有几个代码变化的地方,不算太多,详细参考官方文档。
  3. 配置文件有改,命名规则上面已经说过了,具体在2.0怎么配置可以参考官方网站,我就不说了,这里面给个传送门,有兴趣的可以去看看。