别用 cat
cat 把整个日志文件刷屏
慎用 vim
日志不大随便整,因为vim会把整个日志文件读到内存,大日志文件(G级别)会造成内存占用过高,影响其他程序,在业务机器上查看日志这样尤其危险
less is more
还有两个工具,more和less,整体上 less 比 more 更加优秀,建议使用 less
grep
# 查找ERROR日志以及其后10行
grep -A 10 ERROR log.txt
# 查找ERROR日志以及其前10行
grep -B 10 ERROR log.txt
# 查找ERROR日志以及其前10行和后10行
grep -AC10 ERROR log.txt
awk
# Java 异常栈过滤
awk -v RS= -v ORS='\n\n' 'Exception' logs.txt
# 过滤 2024-07-24 14:21:21 到 2024-07-24 14:21:30 的日志
# 3[0-9] 是为了防止30秒没有日志导致直接过滤到了最后,开始时间同理
awk '/2024-07-24 14:21:21/,/2024-07-24 14:21:3[0-9]/' logs.txt
tac
查询日志中最新的10个异常日志
使用 tac 的倒序能力
tac logs.txt | grep -n -m10 ERROR | tac
其他
通过 sort 和 uniq 命令可以统计分析,如近一段时间内某种异常报错次数