使用log4j 来输出tomcat stdout日志

本文介绍如何通过Log4j优化Tomcat的日志输出,解决因并发量增加导致的日志暴增问题。详细步骤包括下载并配置Log4j及Tomcat扩展jar,创建log4j.properties文件,调整日志级别和输出方式,以及修改Tomcat配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 起因

最近的老项目都是的使用的system.out.print 进行日志输出。默认都会输出到tomcat的stdout日志文件里,控制不了级别,由于并发量的增加的日志暴增。所以网上查看的可以使用log4j来按照文件大小输出日志,来解决日志暴增的情况

2.配置

  1. 下载的log4j1.2.17 并放到tomcat/lib 下 http://www.apache.org/dyn/closer.cgi/logging/log4j/1.2.17/log4j-1.2.17.zip
  2. 下载tomcat扩展jar 地址 http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.64/bin/extras/
  • 下载 tomcat-juli.jar 替换的tomcat/bin 目录下的 tomcat-juli.jar
  • 下载tomcat-juli-adapters.jar 放到tomcat/lib
  1. tomcat/lib 下载新建log4j.properties 内容如下
log4j.rootLogger = INFO, CATALINA,CONSOLE,stdout


log4j.appender.stdout = org.apache.log4j.RollingFileAppender
log4j.appender.stdout.File = ${catalina.base}/logs/stdout.log
log4j.appender.stdout.Append = true 
log4j.appender.stdout.Encoding = UTF-8 
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern = %d [%t] %-5p %c- %m%n 
log4j.appender.stdout.maxFileSize = 5KB 
log4j.appender.stdout.maxBackupIndex = 4


# Define all the appenders
log4j.appender.CATALINA = org.apache.log4j.RollingFileAppender
log4j.appender.CATALINA.File = ${catalina.base}/logs/catalina.log
log4j.appender.CATALINA.Append = true
log4j.appender.CATALINA.Encoding = UTF-8
# Roll-over the log once per day
log4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.CATALINA.maxFileSize = 5KB 
log4j.appender.CATALINA.maxBackupIndex = 4


log4j.appender.LOCALHOST = org.apache.log4j.RollingFileAppender
log4j.appender.LOCALHOST.File = ${catalina.base}/logs/localhost.log
log4j.appender.LOCALHOST.Append = true
log4j.appender.LOCALHOST.Encoding = UTF-8
log4j.appender.LOCALHOST.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout
log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.LOCALHOST.maxFileSize = 5KB 
log4j.appender.LOCALHOST.maxBackupIndex = 4

log4j.appender.MANAGER = org.apache.log4j.RollingFileAppender
log4j.appender.MANAGER.File = ${catalina.base}/logs/manager.log
log4j.appender.MANAGER.Append = true
log4j.appender.MANAGER.Encoding = UTF-8
log4j.appender.MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.MANAGER.maxFileSize = 5KB 
log4j.appender.MANAGER.maxBackupIndex = 4

log4j.appender.HOST-MANAGER = org.apache.log4j.RollingFileAppender
log4j.appender.HOST-MANAGER.File = ${catalina.base}/logs/host-manager.log
log4j.appender.HOST-MANAGER.Append = true
log4j.appender.HOST-MANAGER.Encoding = UTF-8
log4j.appender.HOST-MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.HOST-MANAGER.maxFileSize = 5KB 
log4j.appender.HOST-MANAGER.maxBackupIndex = 4

log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Encoding = UTF-8
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

# Configure which loggers log to which appenders
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost] = INFO, LOCALHOST
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager] =\
  INFO, MANAGER
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager] =\
  INFO, HOST-MANAGER

4.删除的tomcat/conf 下的logging.properties 5.修改context.xml context 标签增加swallowOutput="true"

<Context swallowOutput="true">
  1. 如果tomcat是服务的话设置service.bat
set PR_STDOUTPUT=auto 
set PR_STDERROR=auto

删掉的服务重新发布

转载于:https://my.oschina.net/CPFspace/blog/3035831

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值