发布于2026-07-27 阅读(0)
扫一扫,手机访问
Ubuntu 下 Ja va 日志的查看与分析,说难不难,说简单也藏着不少门道。很多开发者遇到线上问题第一反应就是“翻日志”,但真到了面对一堆日志文件的时候,往往不知道该从哪下手。下面就把这些年积累的常用方法、实用工具和一些坑点,一次性梳理清楚。

Ja va 日志到底放在哪?这得看应用的配置方式。几种典型场景:
/var/log/syslog,或者直接用 journalctl 来查。/var/log/tomcatX/(X 是版本号),很多自建应用也会把日志写到 logs/ 目录下,例如 /opt/app/logs/app.log。log4j.properties(Log4j)、logback.xml(Logback)里的 appender 设置确定,比如 logFile.path=/var/log/myapp.log 这种。找到日志文件只是第一步,关键是怎么用命令行工具高效地看。
cat:直接输出全文,适合小文件。比如 cat /var/log/app.log。less:分页查看大文件,支持上下翻页(空格向下,b 向上),less /var/log/app.log 就能边看边翻。tail:默认显示最后 10 行,加 -f 可以实时跟踪日志(线上排查问题神器),tail -n 100 看最后 100 行。grep:搜索关键字,支持正则。比如 grep "ERROR" /var/log/app.log 快速定位错误,grep -i "timeout" 忽略大小写。wc:统计行数,配合 grep 很实用:grep "ERROR" /var/log/app.log | wc -l,一眼看出错误数量。当日志量级上来了,命令行就不够用了。这时候需要专业的日志分析平台。
sudo apt install 三件套即可);配置 Logstash 解析 Ja va 日志(在 logstash.conf 里设置 input 为文件、filter 解析日志格式、output 到 Elasticsearch);启动服务后用 Kibana 访问 http://localhost:5601,创建索引模式就能可视化分析了。日志不轮替,磁盘迟早会爆。Ubuntu 下用 logrotate 自动处理:
sudo apt install logrotate/etc/logrotate.d/my-ja va-app,内容示例:/var/log/ja va/*.log {
daily # 每天轮替
rotate 7 # 保留7天
compress # 压缩旧日志(.gz格式)
missingok # 文件不存在不报错
notifempty # 空文件不轮替
create 640 root adm # 新日志权限
}
sudo logrotate -f /etc/logrotate.d/my-ja va-app 强制跑一次。有时候问题不在业务代码里,而在 JVM 层面。这时候需要看 GC、线程转储和崩溃日志。
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/var/log/app/gc.logVisualVM 或 GCViewer 可视化 GC 趋势,定位内存泄漏或频繁 Full GC 的问题。jstack > thread_dump.txt (pid 通过 jps 查看)FastThread、TDA(Thread Dump Analyzer)在线分析线程状态,死锁、长时间阻塞一目了然。/var/log/ja va/hs_err_pid.log (pid 为崩溃的 Ja va 进程 ID)最后说几个日常开发中容易踩的坑和优化建议:
DEBUG,生产环境 INFO 或 WARN 就够了,别让大量 DEBUG 日志拖垮性能。PatternLayout 包含时间、级别、类名、线程、消息,比如 %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n,方便快速定位。catch 块里别用 System.out.println(无法控制级别),也别直接拼接字符串——用参数占位符,比如 logger.debug("User {} logged in", username),性能好很多。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8