tomcat在部署多个项目后分项目输出log4j日记文件到tomcat-logs中

需求:项目过多,多项目生成的日记文件堆积在一起,不方便查看,现修改为每个项目生成自己的日记文件,便于查看。生成的日志文件要求在Tomcat服务器的logs文件夹中。(路径可自己更换)

首先log4j的配置我在这里就不多讲了,导入相关的jar包,创建相关的配置文件就以了。
项目用的是log4j.properties文件。我就直接上配置文件了,代码中均有注释说明

### 指定日志根logger ###
log4j.rootLogger = INFO , stdout, D, E

### output to the console ###
#输出到控制台
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
#日志模板
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
#日志格式化输出
log4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n


### Output to the log file ###
#每天生成一个文件
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
#日志文件打印路径(主要看此处的配置,将日志生成到了tomcat文件夹中)
log4j.appender.D.File = ../logs/CSS_logs.log 
#是否在日记后面追加,false覆盖
log4j.appender.D.Append = true
#指定日志级别
log4j.appender.D.Threshold = DEBUG
#日志编码
log4j.appender.D.Encoding=UTF-8
#文件名日期格式
log4j.appender.D.DatePattern=yyyy-MM-dd'.log'
#日志模板
log4j.appender.D.layout = org.apache.log4j.PatternLayout
#日志格式化输出方式
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

### 错误输出到日志文件 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
##  错误日志文件
log4j.appender.E.File =../logs/CSS_error.log 
## 日志附加到文件末尾
log4j.appender.E.Append = true
log4j.appender.E.DatePattern=yyyy-MM-dd'.log'
 ##  只输出ERROR级别(优先级)以上的日志 ##
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} - [ %t:%r ] - [ %p ] - %m%n
log4j.appender.E.Encoding=utf-8

###输出SQL 
##所有com.ibatis 包下日志级别为debug
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.Java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

#druid sql Record
log4j.logger.druid.sql=warn,stdout
log4j.logger.druid.sql.DataSource=warn,stdout
log4j.logger.druid.sql.Connection=warn,stdout
log4j.logger.druid.sql.Statement=warn,stdout
log4j.logger.druid.sql.ResultSet=warn,stdout

主要使用的地方做一下说明:

首先注释为:###输出SQL、#druid sql Record两处示项目而定,你们可以不用看。
注释为:### Output to the log file ###以及### 错误输出到日志文件 ###为生成日记文件的主要配置。

第一个主要设定了等级为DEBUG以下级别的都输出至日志中
第二个主要设定了等级为ERROR以下级别的都输出至日志中

日志输出路径使用log4j.appender.E.File进行设置。
例如:CSS_error.log,CSS为我的项目名称。

说明:假如今天为1号,日志会生成CSS_error.log,明日为2号,日记会将1号的日志文件名更改为CSS_error.log2019-09-01.log

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
您可以使用一个简单的脚本来定时清除Tomcat日志文件。以下是一个示例脚本,使用Shell脚本编: ```bash #!/bin/bash # 设置Tomcat日志目录 TOMCAT_LOG_DIR="/path/to/tomcat/logs" # 设置要删除的日志文件类型 LOG_FILE_TYPES=("catalina.out" "localhost_access_log.txt" "host-manager.log" "manager.log") # 设置保留的最近日志文件数量 KEEP_RECENT_FILES=5 # 删除旧的日志文件 for log_type in "${LOG_FILE_TYPES[@]}"; do # 找到该类型的所有日志文件 log_files=($(find "$TOMCAT_LOG_DIR" -name "$log_type")) # 确保保留最近的日志文件数量 if [[ ${#log_files[@]} -gt $KEEP_RECENT_FILES ]]; then # 按修改时间排序 sorted_files=($(ls -t "${log_files[@]}")) # 删除除最新的文件外的所有文件 for ((i = $KEEP_RECENT_FILES; i < ${#sorted_files[@]}; i++)); do rm "${sorted_files[$i]}" echo "删除文件: ${sorted_files[$i]}" done fi done echo "清除Tomcat日志完成" ``` 请根据您的实际情况修改脚本的变量。将`/path/to/tomcat/logs`替换为您Tomcat日志目录的实际路径,并根据需要修改`LOG_FILE_TYPES`和`KEEP_RECENT_FILES`变量。 保存脚本文件,并使用`chmod +x script.sh`命令赋予执行权限。然后,您可以将该脚本添加到cron作业,以定期运行。例如,要在每天凌晨3点清除Tomcat日志,可以使用以下命令编辑cron作业: ``` crontab -e ``` 然后添加以下行: ``` 0 3 * * * /path/to/script.sh ``` 保存并退出编辑器。现在,脚本将在每天凌晨3点运行,并清除旧的Tomcat日志文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java°遇上鲸鱼

文章帮您解决了问题打赏1元即可

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值