journalctl
查看Systemd服務的Java日志若Java應用以Systemd服務(如my-java-app.service
)運行,journalctl
是查看其實時日志的首選工具。
-f
(follow)選項跟蹤日志的新增內容,-u
指定服務名。sudo journalctl -u my-java-app -f
-n 100
:僅顯示最新的100行日志(避免輸出過多);--since "2025-09-26 10:00:00"
:從指定時間開始查看實時日志(如今日10點后的日志)。tail -f
直接跟蹤日志文件若Java應用將日志輸出到文件(如/var/log/myapp.log
或項目目錄下的logs/app.log
),tail -f
是最直接的實時查看方式。
tail -f /path/to/java/logfile.log
catalina.out
):tail -f /opt/tomcat/logs/catalina.out
grep
過濾關鍵日志若日志文件較大,可通過grep
篩選特定關鍵字(如ERROR
、WARN
),實時查看關鍵信息。
tail -f /path/to/logfile.log | grep "ERROR"
-E
選項匹配復雜模式(如同時包含“error”和“timeout”的行):tail -f /path/to/logfile.log | grep -E "error|timeout"
-i
選項(如grep -i "error"
)。若不確定日志文件路徑,可先通過進程ID(PID)定位日志文件,再用tail -f
查看。
ps -ef | grep java
輸出示例:root 12345 6789 0 10:00 ? 00:00:05 /usr/bin/java -jar /opt/myapp.jar
(PID為12345
)。ls -l /proc/12345/fd | grep -i log
輸出示例:lrwx------ 1 root root 64 Sep 26 10:00 1 -> /opt/myapp/logs/app.log
(日志文件路徑為/opt/myapp/logs/app.log
)。tail -f /opt/myapp/logs/app.log
sudo
(如sudo tail -f /var/log/syslog
)。app.log
轉為app.log.1
),tail -f
會自動跟蹤新文件(無需重啟命令)。logback.xml
)調整日志輸出級別(如DEBUG
、INFO
)和文件路徑,確保日志可查。