Linux大量日志,7个方法教你快速定位错误!

针对大量log日志快速定位错误地方

动态查看日志


tail -f catalina.ou
<br>

从头打开日志文件


cat catalina.ou
<br>

可以使用  >nanjiangtest.txt 输出某个新日志去查看

[root@yesky logs]# cat -n catalina.out |grep 717892466 >nanjiangtest.txt

tail/head简单命令使用:

[root
@yesky logs]# tail -n number catalina.out 查询日志尾部最后number行的日志

<br>        [root
@yesky logs]# tail -n +number catalina.out 查询number行之后的所有日志

<br>        [root
@yesky logs]# head -n number catalina.out 查询日志文件中的前number行日志

<br>        [root
@yesky logs]# head -n -number catalina.out 查询日志文件除了最后number行的其他所有日志

<br>

第一种方式(根据关键字查找出行号):

用grep拿到的日志很少,我们需要查看附近的日志。我是这样做的,首先:  cat -n test.log | grep “关键词” 得到关键日志的行号

[root
@yesky logs]# cat -n catalina.out |grep 
717892466

<br>
13230539        [
11:
07 
17:
47:
11] INFO nanjiang:Edit Old Article:
717892466-
2020-
11-
07 
17:
47:
11

<br>
13230593        [
11:
07 
17:
47:
15] INFO nanjiangSave Article ID IS:
717892466

<br>
13230595        
717892466 article.getDisplayTime()
1 = 
2020-
11-
07 
16:
25:
11

<br>
13230596        
717892466 article.getDisplayTime()
2 = 
2020-
11-
07 
16:
25:
11

<br>
13230601        [
11:
07 
17:
47:
15] INFO 南江 
10.10
.10
.39  edit    article 
717892466       编辑文章

<br>

「cat -n catalina.out|tail -n +13230539|head -n 10」

  • tail -n +13230539表示查询13230539行之后的日志
  • head -n 10则表示在前面的查询结果里再查前10条记录

[root
@yesky logs]# cat -n catalina.out |tail -n +
13230539|head -n 
10

<br>
13230539        [
11:
07 
17:
47:
11] INFO nanjiang:Edit Old Article:
717892466-
2020-
11-
07 
17:
47:
11

<br>
13230540        [
11:
07 
17:
47:
11] INFO Takes:
2 ms 

class 
com.
tmg.
cms.
manager.
dao.
article.
impl.
ArticleContentDaoImpl       
getListByArticleId      [
NzE3ODkyNDY2]       [
int]

<br>13230541        [11:07 17:47:11] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
resourceImage.
impl.
ResourceImageDaoImpl  
load    

<br>13230542        [11:07 17:47:11] 
INFO 
Takes:0 
ms 
class 
com.
tmg.
cms.
manager.
dao.
resourceImage.
impl.
ResourceImageDaoImpl  
load    

<br>13230543        [11:07 17:47:11] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
resourceImage.
impl.
ResourceImageDaoImpl  
load    

<br>13230544        [11:07 17:47:11] 
INFO 
article.
getImage3:/
uploadImages/2020/312/02/3
NXCRK4U3589_2.
jpg

<br>13230545        [11:07 17:47:11] 
INFO 
Takes:0 
ms 
class 
com.
tmg.
cms.
manager.
dao.
resourceImage.
impl.
ResourceImageDaoImpl  
load   

<br>13230546        [11:07 17:47:11] 
INFO 
Takes:2 
ms 
class 
com.
tmg.
cms.
manager.
dao.
privilege.
impl.
UserDaoImpl       
getUserByid     

<br>13230547        [11:07 17:47:11] 
INFO 
Takes:57 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl     
selectSitemapWithoutAudit       [
MQ==]  [
int]

<br>
13230548        [
11:
07 
17:
47:
11] INFO Takes:
5 ms 

class 
com.
tmg.
cms.
manager.
dao.
forbidword.
impl.
ForbidwordDaoImpl        
getForbidwordBysiteid   [
MjI=]  [
int]

<br>

第二种方式:查看指定时间段内的日志

首先要进行范围时间段内日志查询先查看是否在当前日之内存在,


grep 
'11:07 18:29:20' catalina.out

<br>grep 
'11:07 18:31:11' catalina.out

<br>

时间范围内的查询


sed -n 
'/11:07 18:29:20/,/11:07 18:31:11/p' catalina.out 

<br>sed -n 
'/11:07 18:29:/,/11:07 18:31:/p' catalina.out

<br>

第三种方式:查看日志中特定字符的匹配数目


[root
@yesky logs]# grep 
'1175109632' catalina.out | wc -l

<br>
154

<br>

第四种方式:查询最后number行,并查找关键字“结果”


[root
@yesky logs]# tail -n 
20 catalina.out | grep 
'INFO Takes:1'

<br>[
11:
11 
22:
02:
51] INFO Takes:
1 ms 

class 
com.
tmg.
cms.
manager.
dao.
config.
impl.
ConfigInfoDaoImpl 
load 

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
NTkwOTQ5] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MzI0] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MzI3] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MzMw] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MzA5NA==] [
int]

<br>[
11:
11 
22:
02:
51] INFO Takes:
1 ms 

class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
Mzc4Mg==] [
int]

<br>[
11:
11 
22:
02:
51] INFO Takes:
1 ms 

class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
OTM1MA==] [
int]

<br>[
11:
11 
22:
02:
51] INFO Takes:
1 ms 

class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MTE5MDMw] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
NTQ2MzQw] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
NTg2NzYy] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MzYyMjA=] [
int]

<br>[
11:
11 
22:
02:
51] INFO Takes:
1 ms 

class 
com.
tmg.
cms.
manager.
dao.
configModule.
impl.
ConfigModuleDaoImpl 
getPersonMenuList

<br>

第五种方式:查询最后number行,并查找关键字“结果”并且对结果进行标红


[root
@yesky logs]# tail -n 
20 catalina.out | grep 
'INFO Takes:1' --color

<br>[
11:
11 
22:
02:
51] INFO Takes:
1 ms 

class 
com.
tmg.
cms.
manager.
dao.
config.
impl.
ConfigInfoDaoImpl 
load 

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
NTkwOTQ5] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MzI0] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MzI3] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MzMw] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MzA5NA==] [
int]

<br>[
11:
11 
22:
02:
51] INFO Takes:
1 ms 

class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
Mzc4Mg==] [
int]

<br>[
11:
11 
22:
02:
51] INFO Takes:
1 ms 

class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
OTM1MA==] [
int]

<br>[
11:
11 
22:
02:
51] INFO Takes:
1 ms 

class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MTE5MDMw] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
NTQ2MzQw] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
NTg2NzYy] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MzYyMjA=] [
int]

<br>

第六种方式:查询最后number行,并查找关键字“结果”并且对结果进行标红,上下扩展两行


[root
@yesky logs]# tail -n 
20 catalina.out | grep 
'INFO Takes:1' --color -a2

<br>[
11:
11 
22:
02:
51] INFO Takes:
0 ms 

class 
com.
tmg.
cms.
manager.
dao.
article.
impl.
ArticleContentDaoImpl 
getArticlePageNum [
NzE4MTM2ODky] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
config.
impl.
ConfigInfoDaoImpl 
load [
com.
tmg.
cms.
manager.
model.
config.
ConfigInfo]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
NTkwOTQ5] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MzI0] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:0 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MzI1] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MzI3] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MzMw] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:0 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MzAzNg==] [
int]

<br>[
11:
11 
22:
02:
51] INFO Takes:
1 ms 

class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MzA5NA==] [
int]

<br>[
11:
11 
22:
02:
51] INFO Takes:
1 ms 

class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
Mzc4Mg==] [
int]

<br>[
11:
11 
22:
02:
51] INFO Takes:
1 ms 

class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
OTM1MA==] [
int]

<br>[
11:
11 
22:
02:
51] INFO Takes:
0 ms 

class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MTE0MjQ4] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:0 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MTE4MDc4] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MTE5MDMw] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
NTQ2MzQw] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:0 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
NTQ3MTIw] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:0 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
NTY4OTYx] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
NTg2NzYy] [
int]

<br>[11:11 22:02:51] 
INFO 
Takes:1 
ms 
class 
com.
tmg.
cms.
manager.
dao.
sitemap.
impl.
SitemapDaoImpl 
getSitemapTop [
MzYyMjA=] [
int]

<br>[
11:
11 
22:
02:
51] INFO Takes:
1 ms 

class 
com.
tmg.
cms.
manager.
dao.
configModule.
impl.
ConfigModuleDaoImpl 
getPersonMenuList [
com.
tmg.
cms.
manager.
model.
config.
ConfigPersonMenu]

<br>

第七种方式:分页查看,使用空格翻页(使用more/less)


[root
@yesky logs]# tail -n 
2000 catalina.out | grep 
'INFO Takes:1' --color -a2 | more

<br>        [root
@yesky logs]# tail -n 
2000 catalina.out | grep 
'INFO Takes:1' --color -a2 | less

附加

1.全屏导航
  • ctrl + F - 向前移动一屏
  • ctrl + B - 向后移动一屏
  • ctrl + D - 向前移动半屏
  • ctrl + U - 向后移动半屏
2.单行导航
  • j - 向前移动一行
  • k - 向后移动一行
3.其它导航
  • G - 移动到最后一行
  • g - 移动到第一行
  • q / ZZ - 退出 less 命令

原文链接: blog.csdn.net/nan1996jiang/ article/details/109550303