`
superfofo
  • 浏览: 130124 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

LOG4J的性能问题,慎用

阅读更多
有时很多东西都是细致方面的事,又可能脱离互联网太长时间了,碰到这个问题居然一时反应不过来了,其实在生产系统把log4j的级别跳到debug或者info其实可想而知,不断地写日志文件,对系统本来就是一种消耗,少日志,少人用没有关系,一旦并发,数据上来之后,这个消耗是灾难性的。
应用逻辑里面打的日志量不会太多,更多情况下可能是对sql的日志和spring等等的通用插件的日志没有做好控制而导致你的日志文件在不断地刷屏。
针对此,网上的一些资料也验证了这个见解,归纳如下:

对于log4j的性能,我没有做细致的度量。抛开log4j来说,日志操作主要性能耗在输出上,所以输出的日志内容越少越好。除此之外,log4j使用上有两点需要注意:
1、在生产环境中,我们通常是关掉debug级别的,但如果程序中debug函数很多,还是会带来性能问题。因为debug函数输出的就是些调试信息,所以其参数通常是多个字符串+操作构成,这种经典的构造多个临时对象的做法显然会有些性能消耗;更有甚者会调用诸如object.toString方法,而这个被覆盖的方法很可能是将对象内的诸多属性拼凑成字符串输出,对性能有高要求的场景就很不合适。在一些基础库或框架中,就可能会看到下面的代码片断来避免性能问题,其中的isDebugEnabled只是个判定操作,在logger层次不复杂的情况下,没有什么性能损失:

if(logger.isDebugEnabled() {
logger.debug(......);
}2、复杂的logger层级也会带来性能问题。好的方面是,通常我们指定root logger就够了。


而当你的日志足够地专业,一些日志不可不打的时候,世间上的大牛已为大家准备了更好的解决方案,可参考这位领导的:http://raymondhekk.iteye.com/blog/229937
分享到:
评论

相关推荐

    老生常谈Log4j和Log4j2的区别(推荐)

    下面我们将从配置文件类型、核心JAR包、文件渲染和Log调用四个方面来比较Log4j和Log4j2的区别。 配置文件类型 Log4j通过一个.properties文件作为主配置文件,而Log4j2则弃用了这种方式,采用的是.xml、.json或者....

    Log4j2简介及与Log4j效率对比

    与Log4j 1.x相比,Log4j2在设计上进行了重大改进,并解决了Logback等其他日志框架中存在的某些体系结构问题。 #### 特性概述 1. **审计功能**:Log4j2设计时考虑到了审计需求,这意味着即使在配置更新过程中,它也...

    若依框架使用的log4j2.16.0,修复log4j漏洞log4j2下载最新log4j2.16.0下载

    标签“若依 log4j2.16.0”明确了这个问题针对的是若依框架中的Log4j2组件,提醒用户要特别关注这个特定的更新。 在提供的压缩包文件列表中,"log4j2.16.0"可能包含了Log4j2库的更新JAR文件或其他相关资源。用户应当...

    logging-log4j2-log4j-2.15.0-rc2.zip maven 资源库

    针对Log4j 2 远程代码执行漏洞,需要用到的升级资源包,适用于maven资源库,包括log4j,log4j-core,log4j-api,log4j-1.2-api,log4j-jpa等全套2.15.0 maven资源库jar包。如果是maven本地仓库使用,需要将zip包解压...

    log4j乱码问题解决办法

    ### log4j乱码问题解决办法 #### 一、引言 在开发过程中,日志记录是必不可少的一个环节。良好的日志系统可以帮助开发者快速定位问题并进行调试。Log4j作为一款广泛使用的Java日志框架,在很多项目中扮演着重要...

    Log4j2学习用到的jar包及apache-log4j-2.19.0-bin.zip

    分别有disruptor-3.3.4.jar(Log4j2异步日志的底层实现)、log4j-api-2.19.0.jar(log4j门面)、log4j-core-2.19.0.jar(log4j实现)、log4j-slf4j-impl-2.19.0.jar(SLF4J与Log4j绑定)、slf4j-api-1.7.30.jar(SLF...

    log4j.jar各个版本

    apache-log4j-1.2.15.jar, apache-log4j-extras-1.0.jar, apache-log4j-extras-1.1.jar, apache-log4j.jar, log4j-1.2-api-2.0.2-javadoc.jar, log4j-1.2-api-2.0.2-sources.jar, log4j-1.2-api-2.0.2.jar, log4j-...

    SpringBoot框架配置log4j和log4j2的配置代码

    Log4j和Log4j2是两种广泛使用的Java日志框架,它们提供了灵活的日志配置和高性能的日志处理能力。本文将详细介绍如何在SpringBoot项目中配置Log4j和Log4j2。 ### SpringBoot与Log4j Log4j是Apache的一个开源项目,...

    log4j-api-2.12.4.ja和log4j-core-2.12.4.jar

    **log4j-core-2.12.4.jar** 则是Log4j 2的核心实现模块,它实现了API模块中定义的接口,并负责实际的日志记录工作,包括日志事件的处理、输出格式化、日志存储以及性能优化等功能。此外,核心模块还包含了一些附加...

    Log4j2、Fastjson、Log4j的BurpSuite插件亲测有效

    Log4j2作为Log4j的升级版本,它在性能、可配置性和可扩展性上有了显著提升,同时也修复了Log4j的一些已知问题。Fastjson则是阿里巴巴的一个开源项目,它提供了快速的JSON解析和生成性能,广泛应用于Java应用程序的...

    log4j-API-最新稳定版本log4j-1.2.17

    Log4j是Apache软件基金会开发的一个用于Java应用程序的日志记录工具,它提供了灵活的日志记录功能,有助于调试、性能分析和系统监控。"API"(Application Programming Interface)通常指的是开发者用来与库或框架...

    log4j各个版本

    Log4j的各个版本在功能、性能和安全性方面都有所不同,下面将详细介绍这些版本及其特点。 1. Log4j 1.2.6:这是Log4j的一个较早版本,提供了基本的日志记录功能,包括定义不同级别的日志(如DEBUG、INFO、WARN、...

    log4j-api-2.17.1.jar和log4j-core-2.17.1.jar

    此外,Log4j2还引入了异步日志记录,通过使用LMAX Disruptor库来提高性能,尤其是在高并发环境中。 2.17.1版本的更新主要是为了修复安全漏洞。在2021年底,Log4j2被发现存在一个严重漏洞(CVE-2021-44228),这个远程...

    log4j.properties(完整版) log4j.properties(精简版)

    **日志框架Log4j详解** 在Java开发中,日志记录是一项不可或缺的功能,它能够帮助开发者追踪程序运行状态,定位错误,优化性能,并为后期维护提供重要信息。Log4j是Apache组织开发的一个强大的、灵活的日志记录框架...

    log4j+slf4j实现 log4j测试代码,log4j+slf4j实现 log4j测试代码

    2. **配置Log4j**:在项目的类路径下创建`log4j.properties`或`log4j.xml`配置文件,指定日志级别、输出目的地等。例如: ```properties # log4j.properties log4j.rootLogger=DEBUG, stdout log4j.appender....

    log4j-2.18.0

    3. 配置更新后的log4j2,禁用可能导致问题的JNDI查找功能,增强系统安全。 4. 对系统进行全面的安全检查,确保没有遗留的漏洞或风险。 5. 实施持续的安全监控,以便及时发现并处理任何异常行为。 总的来说,log4j2...

    logging-log4j2-log4j-2.15.0-rc2.zip

    相较于Log4j 1.x,Log4j 2不仅在性能上有所增强,而且在用户体验和安全性上都有显著改进。 2. **版本2.15.0-rc2的更新**: - **安全补丁**:此版本主要针对CVE-2021-44228的安全漏洞进行了修复,这是一个非常严重...

    log4j示例项目

    通过这个"log4j示例项目",我们可以亲手实践这些概念,更好地理解和运用Log4j,从而在实际开发中有效地利用日志进行问题排查和系统监控。在项目中的`logtest`文件可能包含了实现这些功能的示例代码,值得我们详细...

    log4j-1.2.15.jar

    1. **稳定性与兼容性**:Log4j 1.2.15是一个稳定版本,修复了前一版本中的多个已知问题,确保了与其他系统的良好兼容性。 2. **配置灵活性**:通过配置文件(通常为log4j.properties或log4j.xml),开发者可以灵活...

    log4j-core-2.15.0.jar log4j-2.15.0-rc2

    Apache log4j2零日漏洞,根据 log4j-2.15.0-rc2 版本编译生成log4j-api-2.15.0.jar 1.解压你的jar jar xvf XXX.jar 2. 删除旧版本jar cd ./BOOT-INF/lib rm -rf log4j-api-*.jar 3. 上传新版本log4j-api-2.15.0....

Global site tag (gtag.js) - Google Analytics