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
)和文件路径,确保日志可查。