log4j2使用手册(中文)第一章 介绍

介绍

欢迎使用Log4j2!

介绍

几乎每个大型的应用程序都有自己的日志记录或API。为了保持一致,1996初欧盟SEMPER项目决定编写自己的的跟踪API。之后经过无数次增强,几个版本和API的演变成为一个流行的Jave日志包-log4j。这个包使用的是Apache软件许可证发布的。一个完全成熟的开源许可证。最新的log4j版本,包括源代码,类文件和文档可以在 http://logging.apache.org/log4j/2.x/index.html中找到。

在代码中插入日志语句是一种调试日志语句的低技术方法。这可能也是唯一的办法因为调试器并不总是可用或适用的。这通常是在多线程和分布式应用的情况。

经验表明,日志记录是开发周期的重要组成部分。 它提供几个优点。 它提供有关应用程序运行的精确上下文。 一旦插入代码,日志输出的生成不需要人为干预。 而且,日志输出可以保存在持久性媒介中以便以后研究。除了在开发周期中使用之外,还可以将足够丰富的日志包视为审计工具。。

正如布莱恩·w·克尔尼根(Brian W. Kernighan)和罗布·派克(Rob Pike)在他们真正优秀的著作《编程实践》(The Practice of Programming)中所言:

作为个人选择,我们倾向于不使用调试器获得堆栈或者一两个变量的值。其中一个理由是我们很容易迷失在复杂的数据结构的细节和控制流中。我们发现一步一步调试程序比认真思考和在关键位置加入输出语句和自检代码低效的多。点击陈述语句比仔细的阅读日志输出花的时间更多。决定把打印语句发在哪里要比单步执行到代码的关键部分花的时间更少,即使我们知道关键部分在哪里。更重要的是,调试语句与程序保持一致而调试会话是暂时的。

日志记录也有缺点,它会减慢程序的速度。如果太罗嗦,可能会导致很难找到关键点。为了解决这些问题,log4j设计为可靠的,快速和可扩展。由于日志记录很少是程序的主要关注点,所以Log4j API力求易于理解和使用。

Log4j 2

Log4j 1.x已被广泛采用于许多应用中。 然而,经过多年的发展,它已经放缓。 由于需要兼容Java的旧版本,因此维护变得更加困难,并在2015年8月"End of Life"(停止维护) 。它的替代方案SLF4J / Logback对框架进行了许多必要的改进。 那么为什么要使用Log4j 2呢?
以下是一些原因。

  1. Log4j 2被设计成可以用作审计日志记录的框架。Log4j 1.x和Logback都会在重新配置时丢失事件。 Log4j 2不会。 在Logback中,Appender中的异常永远不会对应用程序可见。 在Log4j中,可以将Appender配置为允许异常渗透到应用程序。

  2. Log4j 2包含基于LMAX Disruptor库的下一代异步记录器。在多线程方案中,异步记录器的吞吐量比Log4j 1.x和Logback高10倍,延迟低几个数量级。

  3. Log4j 2对于独立应用程序是无垃圾的,对于稳定状态日志记录期间的Web应用程序来说会生成少量垃圾。 这减少了垃圾收集器的压力,并且可以提供更好的响应时间。

  4. Log4j 2使用插件系统,通过添加新的Appenders, Filters, Layouts, Lookups,可以非常轻松地扩展框架,而无需对Log4j进行任何更改

  5. 由于插件系统配置比较简单。配置中的条目不需要指定类名.

  6. 支持自定义日志级别。 可以在代码或配置中定义自定义日志级别。

  7. 支持lambda表达式。 只有在启用了请求的日志级别时,在Java 8上运行的客户端代码才能使用lambda表达式来简洁的构造日志消息。 不需要显式检查级别,从而代码更简洁。

  8. 支持Message对象。 消息允许支持有趣和复杂的构造,通过日志系统传递并有效地操作。 用户可以自由创建自己的消息类型,并编写自定义Layouts,Filters and Lookups来操纵它们。

  9. Log4j 1.x支持Appender上的过滤器。 Logback添加了TurboFilters,允许在事件由Logger处理之前过滤事件。 Log4j 2支持可以配置为在Logger处理事件之前处理事件的过滤器,因为它们由Logger或Appender处理。

  10. 许多Logback Appender不支持 Layout,只会以固定格式发送数据。大多数Log4j2 Appender支持 Layout,允许以任何所需格式传输数据。

  11. Log4j 1.x和Logback中的Layout返回一个String。 这导致了Logback Encoders中专门讨论这个问题。 Log4j 2采用更简单的方法,Layouts总是返回一个字节数组。 这样做的好处是,它意味着它们几乎可以在任何Appender中使用,而不仅仅是写入OutputStream的Appender。

  12. Syslog Appender支持TCP和UDP以及对BSD syslog和RFC 5424格式的支持。

  13. Log4j 2利用Java 5并发支持并在尽可能低的级别执行锁定。 Log4j 1.x已知死锁问题。 其中许多已经在Logback中修复,但许多Logback类仍然需要在相当高的级别进行同步。。

  14. 它是一个Apache Software Foundation项目,遵循所有ASF项目使用的社区和支持模型。 如果您想贡献或获得提交更改的权利,请按照贡献中列出的路径进行操作。

原文链接(https://logging.apache.org/log4j/2.x/manual/inde

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,612评论 5 471
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,345评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,625评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,022评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,974评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,227评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,688评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,358评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,490评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,402评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,446评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,126评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,721评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,802评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,013评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,504评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,080评论 2 341

推荐阅读更多精彩内容

  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 4,951评论 0 6
  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 4,915评论 1 13
  • 一、Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layo...
    默默守护阅读 1,895评论 2 8
  • from:https://www.cnblogs.com/ITtangtang/p/3926665.html一、L...
    enshunyan阅读 3,265评论 0 0
  • 我看6集纪录片《水果传》,除了认识了很多奇异的水果外,还认识了一种寻找珍稀水果的人——水果猎人。好令人羡慕...
    bluecacti428阅读 437评论 0 1