首页 > java > profile > 7.log4j生产环境配置优化

7.log4j生产环境配置优化

在高并发生产环境中,日志是个相当重要的记录。但也是效率消耗的"油老虎"。针对这个效率消耗,来优log4j配置。

1 生产环境中log4j的作用

生产环境和开发环境有很大的区别。

在开发环境中,我们可以借助IDE来进行调试和输出,比如常用的System.out.println()方法输出信息。

在生产环境中,java代码大多采用jar包发布的方式,通常情况是无人值守,有专门的运维人员来维护发布程序。无法通过控制台输出查看信息。即使能通过控制台查看信息,这个信息在高并发的环境中也是飞速刷屏的情况。所以在身缠环境中,需要通过查询日志文件来进行信息的统计和数据查询。log4j作为java应用最广的日志框架,在这种情况下,应运而生。

2 开发环境的log4j配置

在开发环境中,程序员需要第一时间看到日志输出,来方便调试功能。这时需求日志输出到控制台,日志的级别为DEBUG。在配置log4j的时候可以通过设置rootLogger = CONSOLE来实现。

配置示例:

log4j.rootLogger=DEBUG, CONSOLE
log4j.logger.infoLogger=DEBUG, logInfo
log4j.appender.logInfo=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logInfo.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.logInfo.layout=org.apache.log4j.PatternLayout
log4j.appender.logInfo.Encoding=UTF-8
log4j.appender.logInfo.layout.ConversionPattern=%l %d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %x - %m%n
log4j.appender.logInfo.file=/log/info.log

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%l %d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %x - %m%n

3 生产环境的log4j配置

在生产环境中,不需要将日志输出到控制台,日志的级别建议设置为WARN,这个日志级别可以根据项目的实际需要来设置。这样配置后,日志不在往控制台输出,DEBUG信息也不再写入日志,达到提高运行效率的目的。

配置示例:

log4j.rootLogger=WARN
log4j.logger.infoLogger=WARN, logInfo
log4j.appender.logInfo=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logInfo.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.logInfo.layout=org.apache.log4j.PatternLayout
log4j.appender.logInfo.Encoding=UTF-8
log4j.appender.logInfo.layout.ConversionPattern=%l %d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %x - %m%n
log4j.appender.logInfo.file=/log/info.log
转载请保留原文链接.