7月份帮国内一个项目现场诊断java coredump的问题,发现内存中大量的log4j日志信息,为解决问题就按照代码调用的处理流程梳理了一遍log4j-1.2.8的代码,今天把未完成的部分继续梳理了下,形成下图。
一并整理出了log4j的配置项目(v1.2.8)
#log4j-1.2.8配置文件样例
#log4j.configDebug已经被log4j.debug所取代.表示是否启用针对log4j本身的调试日志(LogLog工具类),默认false
log4j.debug=true/false
#设置日志阈值 在进行日志输出时(如log.info(Object))时,会用INFO与threshold做比较,不低于threshold的才会被处理,默认是最低的ALL
#FATAL = 50000/ERROR = 40000/WARN = 30000/INFO = 20000/DEBUG = 10000
log4j.threshold=DEBUG/INFO/ERROR/...
#设置loggerFactory的类,默认org.apache.log4j.DefaultCategoryFactory
log4j.loggerFactory=factoryClassName
#注入到LoggerFactory对象的属性
log4j.factory.xxx=yyy
#log4j.rootCategory与之相同效果.设置root的level和需要输出到的appender
log4j.rootLogger=DEBUG/INFO/ERROR,appenderName,appenderName
#log4j.logger.与之效果相同.设置loggerName的level和需要输出到的appender
log4j.category.loggerName=DEBUG/INFO/ERROR,appenderName,appenderName
#当Hierarchy是org.apache.log4j.RendererSupport实现类时,该设置才有效。默认的org.apache.log4j.Hierarchy已经实现了org.apache.log4j.RendererSupport
#renderedClass:info(Object)方法中Object参数的对象类型,renderingClass:用于对info(Object)对象进行渲染的具体处理类
log4j.renderer.renderedClass=renderingClass
#默认true,设置logger的additivity,如果additive=false,表示callAppenders时到此为止,不再往上遍历parent
log4j.additivity.loggerName=true/false
#Appender的配置
#设置appenderName对应的Appender实现类
log4j.appender.appenderName=org.apache.log4j.DailyRollingFileAppender
#设置注入到Appender中的属性(当appender是org.apache.log4j.spi.OptionHandler子类时),如file=xxx, maxfilesize=xxx.具体属性清单看DailyRollingFileAppender等类
log4j.appender.appenderName.xxx=yyy
#设置appender对应个日志格式布局类
log4j.appender.appenderName.layout=org.apache.log4j.PatternLayout #Appender日志格式布局
#设置注入到layout中的属性,如ConversionPattern=[%d] [%t] (%F:%L) %-5p %c - %m%n.具体属性清单看org.apache.log4j.PatternLayout等类
log4j.appender.appenderName.layout.xxx=yyy
说回这个项目,当初诊断后怀疑是BES上的某个配置使得System.io被替换为BES所提供的io,形成了环路,导致日志信息在内存中重复追加到StringBuffer中,最后导致coredump。
最后项目现场说替换了配置文件就解决了,问替换了什么配置,打死也不说。。。太没有配合精神了,至今不知如何解决的。
- 大小: 615.8 KB
分享到:
相关推荐
《深入解析log4j-1.2.8.jar:源码与工具的融合》 在IT行业中,日志记录是软件开发中不可或缺的一部分,它帮助开发者追踪程序运行状态,定位和解决问题。Log4j,一个由Apache软件基金会开发的开源日志框架,是Java...
log4j-1.2.8.jar包,希望对您有所帮助,谢谢您的支持!
1. **配置方式**:Log4j的配置通常通过一个XML或.properties文件进行,例如`log4j.properties`或`log4j.xml`。在这个配置文件中,我们可以定义日志级别(TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF)、Appender和...
Java数据库连接驱动是Java应用程序与各种数据库进行交互的关键组件,其中`log4j-1.2.8.jar`是一个特定版本的日志记录框架的JAR文件,主要用于在Java应用程序中实现日志功能。在此,我们将深入探讨Java数据库连接...
要使用Log4j-1.2.8,首先需要在项目中引入log4j.jar,然后创建或修改配置文件以满足特定需求。接着,在代码中使用Logger类创建日志实例,通过调用如`logger.debug()`, `logger.info()`, `logger.error()`等方法来...
它是由Ceki Gülcü在2002年开发的,其版本 jakarta-log4j-1.2.8 提供了详细的文档。这个框架允许开发者以灵活的方式输出不同级别的日志信息,如DEBUG、INFO、WARN、ERROR和FATAL。Log4j的设计目标是可配置、高效且...
log4j-1.2.8.jar, log4j-1.2.9.jar, log4j-1.2.91.jar, log4j-1.2.jar, log4j-1.2rc1.jar, log4j-1.3alpha-7.jar, log4j-api-2.0.2-javadoc.jar, log4j-api-2.0.2-sources.jar, log4j-api-2.0.2.jar, log4j-boot.jar...
《深入解析zlib库:从zlib-1.2.8.tar.gz的下载与使用》 在信息技术领域,数据压缩是提升效率、节省存储空间的关键技术之一。zlib库是广泛应用于各种软件开发中的开源数据压缩库,尤其在处理网络传输和文件存储时不...
《zlib-1.2.8:开源压缩库的详细解析》 在计算机科学领域,数据压缩技术扮演着至关重要的角色,特别是在网络传输、存储优化和软件开发中。zlib库,作为一款广泛使用的开放源代码的数据压缩库,为开发者提供了高效、...
apache axis-1_4:axis.jar ,axis-ant.jar,commons-discovery-0.2.jar,commons-logging-1.0.4.jar,jaxrpc.jar,log4j-1.2.8.jar,saaj.jar,wsdl4j-1.5.1.jar
赠送jar包:druid-spring-boot-starter-1.2.8.jar; 赠送原API文档:druid-spring-boot-starter-1.2.8-javadoc.jar; 赠送源代码:druid-spring-boot-starter-1.2.8-sources.jar; 赠送Maven依赖信息文件:druid-...
这个压缩包文件"springloaded-1.2.8.RELEASE"包含了该工具的特定版本,即1.2.8.RELEASE。 **SpringLoader的原理** SpringLoaded的核心功能是类加载器(ClassLoader)的增强,它能够监测到源代码的变化,并在代码保存...
axiom-c14n-1.2.8.jar axiom-c14n-1.2.8.jar axiom-c14n-1.2.8.jar
druid-1.2.8-javadoc.jar
赠送jar包:druid-spring-boot-starter-1.2.8.jar; 赠送原API文档:druid-spring-boot-starter-1.2.8-javadoc.jar; 赠送源代码:druid-spring-boot-starter-1.2.8-sources.jar; 赠送Maven依赖信息文件:druid-...
《zlib-1.2.8-vc10-64.zip:64位预编译版Zlib库详解》 Zlib库是计算机科学领域一个广泛应用的压缩库,主要用于数据压缩和解压缩操作。标题中的"zlib-1.2.8-vc10-64.zip"明确指出了这是Zlib库的一个版本,具体为...
druid-spring-boot-starter-1.2.8.jar
java 连接数据库资源包 mysql-connector-java-8.0.23.zip druid-1.2.8.jar