以下是Linux下Java日志分析的核心技巧,涵盖基础操作到高级工具使用:
日志文件定位
/var/log/(系统级)、应用自定义目录(如/opt/app/logs/)。ps -ef | grep java,结合配置文件(如log4j2.xml)确认日志路径。实时查看日志
tail -f <日志文件>:动态跟踪最新日志。less/more:分页查看大文件,支持上下翻页。按关键字搜索
grep "ERROR":过滤错误日志,-i忽略大小写,-A/-B显示前后行。grep -E "Exception|Error" 同时匹配多个关键词。统计与分析
grep "NullPointerException" <日志> | wc -l。sed -n '/2025-01-01 10:00/,/2025-01-01 11:00/p' <日志>。awk '{print $1}' <日志> | sort | uniq -c | sort -nr(适用于访问日志)。专业日志分析工具
journalctl -u java-app -f)。日志轮转与归档
logrotate:自动压缩、删除旧日志,配置文件位于/etc/logrotate.d/。/etc/logrotate.d/java-app,设置size 100M或daily轮转。关联JVM工具
jstack(线程快照)、jmap(堆转储)分析。jstack <PID> > thread_dump.log,对比日志中的线程ID定位问题。日志级别动态调整
logback.xml中配置<logger name="com.example" level="ERROR"/>。chmod 640 <日志>)。DEBUG,使用isDebugEnabled()控制高频日志输出。工具推荐:
tail、grep、awk(快速定位基础问题)。参考来源: