2019独角兽企业重金招聘Python工程师标准>>>

本文为转载学习

英文原文:Apache.org,编译:ImportNew - 滕开选

译文连接:http://www.importnew.com/3046.html

关于Log4j 2 

Log4j 2 是Log4j的升级版,与之前的版本Log4j 1.x相比、有重大的改进,在修正了Logback固有的架构问题的同时,改进了许多Logback所具有的功能。
Log4j 2的特性以及改进有:

  • API分离:Log4j将API与实现分离开来。开发人员现在可以很清楚地知道能够使用哪些没有兼容问题的类和方法,同时又允许通过自己实现来增强功能。

  • 改进的性能:Log4j 2的性能在某些关键领域比Log4j 1.x更快,而且大多数情况下与Logback相当。更多的信息请参考性能。

  • 多个API支持:Log4j 2提供最棒的性能的同时,还支持SLF4J和公共日志记录API。

  • 自动配置加载:像Logback一样,一旦配置发生改变,Log4j 2可以自动载入这些更改后的配置信息,又与Logback不同,配置发生改变时不会丢失任何日志事件。

  • 高级过滤功能:与Logback类似,Log4j 2可以支持基于上下文数据、标记,正则表达式以及日志事件中的其他组件的过滤。Log4j 2 能够专门指定适用于所有的事件,无论这些事件在传入Loggers之前还是正在传给 appenders。另外,过滤器还可以与Loggers关联起来。与Logback不同的是,Filter公共类可以用于任何情况。

  • 插件架构:所有可以配置的组件都以Log4j插件的形式来定义。同样地,不需要修改任何Log4j代码就可以创建新的Appender、Layout、Pattern Convert 等等。Log4j自动识别预定义的插件,如果在配置中引用到这些插件,Log4j就自动载入使用。

  • 属性支持:属性可以在配置文件中引用,也可以直接替代或传入潜在的组件,属性在这些组件中能够动态解析。属性可以是配置文件,系统属性,环境变量,线程上下文映射以及事件中的数据中定义的值。用户可以通过增加自己的Lookup插件来定制自己的属性。

文档

Log4j 2用户文档可在这里在线阅读,或下载成PDF格式。

要求

Log4j 2至少要求安装Java 5,然而使用Java 6的增强功能可以提高性能。有些特性需要一些可选的依赖,这些依赖在相关特性的文档中有说明。

资讯

Log4j 2现在已经可以测试。API与Log4j 1.x 不兼容,不过通过适配器可以继续使用Log4j 1.x API。 适配器同样适用于Commons Logging和SLF4J.

文档

Log4j 2用户文档可在这里在线阅读,或下载成PDF格式。

要求

Log4j 2至少要求安装Java 5,然而使用Java 6的增强功能可以提高性能。有些特性需要一些可选的依赖,这些依赖在相关特性的文档中有说明。

资讯

Log4j 2现在已经可以测试。API与Log4j 1.x 不兼容,不过通过适配器可以继续使用Log4j 1.x API。 适配器同样适用于Commons Logging和SLF4J.

Log4j 2.x的构建与安装

构建

Log 4j 运行在Apache 软件基金会下的代码仓库中。Log4j 代码仓库可以找到如何获取当前绝大多的源代码的细节。可以根据Log4j下载说明下载最新的源代码

Log4j 2.x 使用Maven 2或3作为生成工具。在root目录中仅运行”mvn install”就可以生成Log4j.

程序中如何使用

在你的程序中使用Log4j之前必须确保API和Core jars 在程序的classpath中。使用Maven将下面的依赖加入pom.xml.

<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.0-beta3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.0-beta3</version>
</dependency>
</dependecies>

Apache 公共日志记录

公共日志记录在许多组件中使用,不同的组建可以选择特定的日志记录的实现。为了把这些组件的日志功能集成到Log4j 2,需要加入下面的依赖,而且不能删除Commons Logging jar

<dependencies>
<dependency>
<groupId>org.apache.logging.log4j.adapters</groupId>
<artifactId>log4j-jcl</artifactId>
<version>2.0-beta3</version>
</dependency>
</dependecies>

SLF4J

SLF4J是另一个受欢迎的日志记录API,通过加入下面的依赖以及SLF4J依赖就可以将其绑定到Log4j 2.

<dependencies>
<dependency>
<groupId>org.apache.logging.log4j.adapters</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.0-beta3</version>
</dependency>
</dependecies>

升级注意事项
Apache Log4j 2不支持兼容老版本。如果要升级到Log4j 2请铭记下列几条:

  • 需要Java 5

  • 简化了XML配置,不兼容logj4 1.x。

  • 不支持属性文件配置

  • 支持JSON配置

  • 虽然Log4j 2不能与Log4j 1.x直接兼容,但是可以通过自带兼容桥梁来降低升级带来的代码更改。

转载于:https://my.oschina.net/u/2260184/blog/512366

Log4j 2 介绍相关推荐

  1. log4j 使用介绍

    日志是应用软件中不可缺少的部分,Apache的开源项目Log4j是一个功能强大的日志组件,提供方便的日志记录.以下是个人经验,具体请参考Log4j文档指南. Log4j下载 在apache网站:htt ...

  2. Log4j详细介绍(七)----日志格式化器Layout

    日志格式化器Layout负责格式化日志信息.方法log.error()的参数只包含日志信息,利用Layout可以附加其他信息,以输出更多的信息或者布局显示. PatternLayout布局 Patte ...

  3. Log4j自定义Appender介绍

    最初想要在执行一段业务逻辑的时候调用一个外部接口记录审计信息,一直找不到一个比较优雅的方式,经过讨论觉得log4j自定义的appender或许可以实现此功能.后来就了解了一下log4j的这部分. Ap ...

  4. log4j配置文件详解

    在开发中经常会碰到日志,网上关于日志的框架也很多,像log4j.self4j.common-logging等,下面对log4j进行介绍. log4j是java开发的日志框架,具有低侵入的特点,其重点使 ...

  5. 使用log4j记录日志_使用log4j2免费分配日志记录

    使用log4j记录日志 介绍 最近,我正在为一个客户端工作,试图为大型精心制作的Java系统消除一些GC暂停. 经过分析后,我意识到大部分垃圾都是通过日志记录产生的! 是否有一种简单的方法来删除所有分 ...

  6. LOG4J原理以及配置的研究

    在进行 Log4J 的使用过程中,我对下面的两个问题比较敏感: 1.  Log4J 是如何进行工作的? 这是在 Log4J 项目中对 Log4J 的介绍中的一段话 With log4j it is p ...

  7. 多线程、多平台环境中的跟踪 - 使用 log4j 和 UNIX 命令来挖掘跟踪数据

    2004 年 4 月 01 日 大多数 Java 程序员都使用某种跟踪系统来跟踪开发中的代码的潜在错误和问题.然而,多线程和多平台环境可能产生大量莫名其妙的跟踪数据.在本文中,软件工程师 Daniel ...

  8. 在Tomcat 与weblogic 中的 日志(log4j) 配置系列一

    前言 使用 spring 开发了一个web的项目. 使用log4j来记录日志. 开发完成后,打成.war 档,部署在Tomcat6 的服务器中, 是正常的: 但是部署到weblogic10.3.X.X ...

  9. java日志优雅打印格式_优雅编程之日志排查Log4j

    背景 程序开发调试中,不可缺少的便是日志管理,常用的日志管理框架有如下几种: Log4j:Apache Log4j是一个基于Java的日志记录工具.它是由Ceki Gülcü首创的,现在则是Apach ...

最新文章

  1. 进程间通信学习小结(共享内存)
  2. 怎么优雅的处理Java异常?
  3. linux安装grub
  4. 服务器返回的json数据,通过本地解析调用SBjson的类
  5. java byte大小_Java中byte大小格式化
  6. SeqGAN——对抗思想与增强学习的碰撞
  7. 使用Android应用调用WebService实现天气预报
  8. taylor+swift纽约公寓_国际巨星Taylor Swift有多爱豪宅?才30岁就有8套豪宅
  9. linux免费计费系统下载,思谷电话计费系统 Linux版
  10. JAVA基础(1/17)-JAVA语言概述
  11. 转:L298N的原理图以及程序实现
  12. WPS VBA遇到的问题小记
  13. 【PS/AI】10款逼真的喷泉背景免费矢量设计素材
  14. Android 相机教程,Android 相机教程
  15. Git ---- 自建代码托管平台-GitLab
  16. Matlab自带排序函数sort用法
  17. 单片机(3)跑马灯,按钮控制的跑马灯(2种编程)
  18. 以太网巨人3Com退出历史舞台
  19. 搭建S60手机端Python软件运行,开发,发布平台
  20. ideaxml文件背景飘黄问题

热门文章

  1. 求求你,别在 MySQL 中使用 UTF-8了!
  2. 盘点开发中那些常用的MySQL优化
  3. Spring Boot 异步请求和异步调用
  4. Spring MVC+Spring+Mybatis实现支付宝支付功能(图文详解+完整代码)
  5. 是时候扔掉Postman了,又一个被低估的IDEA插件出来了...
  6. 从零开始 Code Review,两年实战经验分享!
  7. 知乎热问:成为算法工程师的路上,掌握什么技术会感觉自我提升突飞猛进?
  8. 数据竞赛利器XGBoost常见面试题集锦
  9. 谷歌开源NLP模型可视化工具LIT,模型训练不再「黑箱」
  10. PyTorch 1.6正式发布!新增自动混合精度训练、Windows版开发维护权移交微软