开发日志定位,grep 、less 结合使用

 

java 开发常用 日志定位,grep 结合使用

最常用查看日志方法:
·实时日志:tail -f XXX.log
·搜索关键字附近日志:cat -n filename | grep -C20 "关键字"  查询关键字的日志(常用!~)

下面详细看下⬇⬇⬇:

 

查看日志常用命令

    tail:  

       -n  是显示行号;相当于nl命令;例子如下:

            tail -100f test.log      实时监控100行日志

            tail  -n  10  test.log   查询日志尾部最后10行的日志;

            tail -n +10 test.log    查询10行之后的所有日志;

    head:  

        跟tail是相反的,tail是看后多少行日志,而head是查看日志文件的头多少行,例子如下:

            head -n 10  test.log   查询日志文件中的头10行日志;

            head -n -10  test.log   查询日志文件除了最后10行的其他所有日志;

    cat: 

        tac是倒序查看,是cat单词反写;例子如下:

            tac  test.log |grep  -C20  "关键字"  

    vim:

        1、进入vim编辑模式:vim filename
        2、输入“/关键字”,按enter键查找
        3、查找下一个,按“n”即可
        退出:按ESC键后,接着再输入:号时,vi会在屏幕的最下方等待我们输入命令
        wq! 保存退出
        q! 不保存退出 

一、日志内容特别多,打印在屏幕上不方便查看,分页/保存文件查看 less命令

1:less catalina.out

2:大写字母:F【find的意思,并且其实他正在计算行数】直接到达日志最底部,也就是最新日志

3:ctrl+c【把上面的计算行数运算停止】

4:?要搜索的字符【用通配符?开始查找】如果?不起作用 使用 / 查找

5:键盘上下键来查看 【

  1. 上下键,
  2. 空格下一页
  3. 字母B上一页  ,
  4. 字母Q退出,
  5. n(小写字母n)上一个关键字位置

  6. N(大写字母N)下一个关键词位置

 

2、ps查看进程信息并通过less分页显示

ps -ef |less

3、查看命令历史使用记录并通过less分页显示

history | less

4、浏览多个文件

less log2013.log log2014.log

说明:
输入 :n后,切换到 log2014.log
输入 :p 后,切换到log2013.log

 

1.全屏导航

  • ctrl + F - 向前移动一屏
  • ctrl + B - 向后移动一屏
  • ctrl + D - 向前移动半屏
  • ctrl + U - 向后移动半屏

2.单行导航

  • j - 向前移动一行
  • k - 向后移动一行

3.其它导航

  • G - 移动到最后一行
  • g - 移动到第一行
  • q / ZZ - 退出 less 命令

4.其它有用的命令

  • v - 使用配置的编辑器编辑当前文件
  • h - 显示 less 的帮助文档
  • &pattern - 仅显示匹配模式的行,而不是整个文件

5.标记导航

当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:

  • ma - 使用 a 标记文本的当前位置
  • 'a - 导航到标记 a 处

列出几种常见的应用场景⬇⬇⬇:

 

查看日志应用场景一:按行号查看:过滤出关键字附近的日志

     (1) cat -n test.log |grep "debug"  得到关键日志的行号

     (2) cat -n test.log |tail -n +92|head -n 20  选择关键字所在的中间一行. 然后查看这个关键字前10行和后10行的日志:

            tail -n +92表示查询92行之后的日志

            head -n 20 则表示在前面的查询结果里再查前20条记录

 

查看日志应用场景二:根据日期查询日志

        sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log

特别说明:

上面的两个日期必须是日志中打印出来的日志,否则无效

先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该时间点

查看日志应用场景三:日志内容特别多,打印在屏幕上不方便查看,分页/保存文件查看

    (1)使用less命令,

           如: cat -n test.log |grep "debug" |less     这样就分页打印了,通过点击空格键翻页

    (2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析

            如:cat -n test.log |grep "debug"  >debug.txt

 

grep 查日志基本语法

1.基本语法
grep [参数] 关键字 文件 
参数选项:

-n 结果显示行号
-c 关键字匹配的行次数
-i 关键字忽略大小写
-v 反向选择
-e 后跟一个正则表达式
-m10 查找到10次就停止继续查找
-A10 显示关键字所在行和后10行
-B10 显示关键字所在行和前10行
-C10 显示关键字所在行和前后10行
--color=auto 关键字高亮显示(多个参数一起使用,color属性需要放最后,注意是两个短线)

grep 可以跟正则,详细信息

grep -n t[ea]st info.log 查询test或者tast ([]一个字符)
grep -n [^g]oo    查询oo但不包含goo的行 (^在[]内表示反向选择)
grep -n [^a-z]oo    查询oo但不包含小写字母+oo的行 ([a-z] 一个小写字母)
grep -n [0-9]    查询包含数字的行 ([0-9] 一个数字)
grep -n ^the    查询the开头的行 (^不在[]内表示定位到行首)
grep -n [a-zA-Z]    查询不是以字母开头的行 (^反向和定位)
grep -n .$    查询以.结尾的行 (\转义 $结尾)
grep -n ^$    找出空白行 (^$ 空白行)
grep -n g..d    查询g??d的字符串的行(.表示一个)
grep -n ooo*    查询至少包含两个oo的行(* 表示重复前边一个字符0-n次)
grep -n goog    查询g开头g结尾且中间至少包含一个o的行
grep -n g.g    查询g开头g结尾且中间字符可有可无的行 (.*表示没有或有任意个字符)
grep -n o{2}    查询oo的行({2} 前边字符重复2次,{}转义)

2.多关键字grep
多条件或

grep -E '关键字1|关键字2|关键字3' info.log

匹配关键字1或关键字2或关键字3到任意一个,展示该行

多条件与

grep '关键字1' info.log | grep '关键字2' | grep '关键字3'

匹配到关键字1和关键字2和关键字3全部,展示该行

3.多文件grep
当前目录下grep文件

grep 关键字 *

当前目录下grep文件夹以及文件夹下所有文件(递归)

grep -r 关键字 *

3.demo
在info.log 模糊查询关键字(订单号:5a8f4709db9d493b),并显示匹配行上下10行,以及行号

grep -n -C10 '订单号:5a8f4709db9d493b' info.log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值