在 Ubuntu 上运行 Tomcat 时,日志通常位于 $CATALINA_HOME/logs(一般是 /var/lib/tomcat9/logs 或 /opt/tomcat/logs)。常见日志文件包括:
catalina.out:主输出日志catalina.yyyy-mm-dd.loglocalhost.yyyy-mm-dd.loglocalhost_access_log.yyyy-mm-dd.txt(访问日志)下面按常见需求说明如何“过滤”Tomcat日志。
tail -f /var/lib/tomcat9/logs/catalina.out | grep -i error
grep -i "NullPointerException" /var/lib/tomcat9/logs/catalina.out
tail -f /var/lib/tomcat9/logs/catalina.out | grep -E "ERROR|WARN|Exception"
grep "2024-01-15" /var/lib/tomcat9/logs/catalina.out
awk '/10:00/,/11:00/' /var/lib/tomcat9/logs/catalina.out
访问日志示例:
127.0.0.1 - - [15/Jan/2024:10:12:33 +0000] "GET /api/test HTTP/1.1" 200 1234
grep " 500 " /var/lib/tomcat9/logs/localhost_access_log.*.txt
grep "/api/login" /var/lib/tomcat9/logs/localhost_access_log.*.txt
awk '{print $1}' localhost_access_log.*.txt | sort | uniq -c | sort -nr
Ubuntu 一般已配置 Tomcat 的 logrotate:
cat /etc/logrotate.d/tomcat9
可修改:
示例:
/var/lib/tomcat9/logs/catalina.out {
daily
rotate 7
compress
missingok
notifempty
}
如果你是想减少无用日志,应改日志配置:
logging.properties路径:
/etc/tomcat9/logging.properties
示例:
.level = INFO
org.apache.catalina.level = WARNING
如果你的应用使用 Spring Boot:
logging:
level:
root: INFO
com.example: DEBUG
tail -n 100 catalina.out | grep Exception
grep -c "ERROR" catalina.out
grep -A 20 "Exception" catalina.out
如果你能具体说明:
我可以给你更精准的方案。