在CentOS上自動化處理Java日志,可結合工具配置與腳本實現,核心方法如下:
Logrotate工具
sudo yum install logrotate
/etc/logrotate.d/
下創建Java日志配置文件(如java-app
),設置輪轉周期、保留天數、壓縮等參數,例如:/var/log/java-app/*.log {
daily
rotate 7
compress
missingok
notifempty
create 640 root root
}
Shell腳本+定時任務
/usr/local/bin/process_java_logs.sh
)實現日志壓縮、刪除等操作,例如:#!/bin/bash
LOG_DIR="/var/log/java-app"
find $LOG_DIR -name "*.log" -mtime +7 -exec gzip {} \;
find $LOG_DIR -name "*.log.*.gz" -mtime +30 -exec rm {} \;
chmod +x /usr/local/bin/process_java_logs.sh
crontab -e
添加0 2 * * * /usr/local/bin/process_java_logs.sh
(每日凌晨2點執行)。ELK Stack(日志分析場景)
sudo yum install elasticsearch logstash kibana
/var/log/java-app/
讀?。?,通過Elasticsearch存儲,Kibana可視化分析。Java日志框架配置
log4j2.xml
或logback.xml
中設置滾動策略,例如按時間或文件大小切割:<!-- Log4j2示例:按天切割,保留7天 -->
<RollingFile name="RollingFile" fileName="logs/app.log"
filePattern="logs/app-%d{yyyy-MM-dd}-%i.log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
<DefaultRolloverStrategy max="7"/>
</RollingFile>
說明:
root
,屬組為adm
)。