当前位置:首页>Linux>JAVA开发者必备的Linux查日志命令大全

JAVA开发者必备的Linux查日志命令大全

  • 2026-09-12 18:54:46
JAVA开发者必备的Linux查日志命令大全

1. 基础搜索命令

grep 试试

bash

# 搜索包含error的行grep'error' application.log# 在多个文件中搜索grep'error' *.log# 忽略大小写grep-i'error' application.log# 显示行号grep-n'error' application.log# 显示匹配的前后几行grep-A3-B3'error' application.log  # 前后各3行grep-C5'error' application.log       # 前后各5行

2. 多条件筛选

与条件(AND)

bash

# 同时包含error和NullPointergrep'error' application.log |grep'NullPointer'# 使用正则表达式grep-E'error.*NullPointer|NullPointer.*error' application.log

或条件(OR)

bash

# 包含error或exceptiongrep-E'error|exception' application.log# 使用多个-e参数grep-e'error'-e'exception' application.log

非条件(NOT)

bash

# 包含error但不包含testgrep'error' application.log |grep-v'test'

3. 按时间范围筛选

使用sed按时间戳筛选

bash

# 筛选2024-01-15 10:00到11:00的日志sed-n'/2024-01-15 10:00:/,/2024-01-15 11:00:/p' application.log# 筛选某个时间点之后的日志sed-n'/2024-01-15 10:30:/,$p' application.log

使用awk按时间筛选

bash

# 筛选特定时间段的日志awk'/2024-01-15 10:00:/ && /2024-01-15 11:00:/' application.log

4. 实时日志监控

tail 命令

bash

# 实时查看日志tail-f application.log# 实时查看并过滤tail-f application.log |grep'error'# 从第1000行开始实时查看tail-n +1000 -f application.log

5. 统计和分析

错误统计

bash

# 统计错误出现次数grep-o'error' application.log |wc-l# 统计每种错误的数量grep'error' application.log |sort|uniq-c|sort-nr# 按小时统计错误grep'error' application.log |cut -d' '-f2|cut -d: -f1|sort|uniq-c

6. JAVA特定日志查询

搜索异常堆栈

bash

# 搜索异常及其堆栈信息grep-A20'Exception' application.log# 搜索特定包名的异常grep-A10'com\.company\.' application.log# 搜索Spring相关错误grep-E'BeanCreationException|TransactionException' application.log

线程相关查询

bash

# 搜索特定线程的日志grep'Thread-1' application.log# 搜索线程池相关grep-E'ThreadPool|Executor' application.log

7. 性能相关查询

搜索慢查询

bash

# 搜索执行时间超过阈值的日志grep'execution time' application.log |awk'$NF > 1000'# 搜索数据库慢查询grep-E'slow query|timeout' application.log

内存相关

bash

# 搜索内存相关日志grep-E'OutOfMemory|GC|Memory' application.log# 搜索垃圾回收grep'GC' application.log

8. 组合查询实战案例

案例1:查找特定时间段的错误

bash

# 查找今天10点到11点之间的errorsed-n'/2024-01-15 10:/,/2024-01-15 11:/p' application.log |grep'error'

案例2:实时监控特定用户的错误

bash

# 实时监控用户12345的错误日志tail-f application.log |grep'user_12345'|grep-E'error|exception'

案例3:统计接口响应时间分布

bash

# 提取接口响应时间并统计grep'API response time' application.log |awk'{print $NF}'|\sort-n|uniq-c|head-20

案例4:查找事务相关的错误

bash

# 查找事务失败的相关日志grep-E'Transaction.*fail|rollback' application.log |grep-A10-B5'error'

9. 高级技巧

使用zgrep搜索压缩日志

bash

# 搜索gz压缩的日志文件zgrep 'error' application.log.1.gz# 在多个压缩文件中搜索zgrep 'error' *.gz

使用ack或ag(更快的替代品)

bash

# 安装ack或ag后使用ack 'error' application.log ag 'error' application.log

使用jq处理JSON日志

bash

# 如果日志是JSON格式grep'error' application.log | jq '.message, .stackTrace'

10. 常用命令组合

bash

# 查找最近1小时内的错误并按频率排序grep'error' application.log |\grep"$(date-d'1 hour ago''+%Y-%m-%d %H:%M')"|\sort|uniq-c|sort-nr# 监控日志并高亮显示关键词tail-f application.log |grep--color=auto -E'error|warning|exception'

这些命令覆盖了JAVA开发者日常排查问题的绝大多数场景,建议收藏并根据实际需求灵活组合使用。

最新文章

随机文章