查看服务器、应用运行日志,这是每个程序员必备的工作技能,因为,日志是最好的查找出错问题在哪的途径。如果当服务器爆了,你却连如何定位错误都不知道?那么,这锅你是背定了。。。
今天,我们就针对大量日志记录中,如何快速定位错误?来聊一聊。
针对大量log日志快速定位错误地方
动态查看日志
tail-fcatalina.ou
从头打开日志文件
catcatalina.ou
可以使用>nanjiangtest.txt
输出某个新日志去查看
[root@yeskylogs]#cat-ncatalina.out|grep717892466>nanjiangtest.txt
tail/head简单命令使用
[root@yeskylogs]#tail-nnumbercatalina.out查询日志尾部最后number行的日志
[root@yeskylogs]#tail-n+numbercatalina.out查询number行之后的所有日志
[root@yeskylogs]#head-nnumbercatalina.out查询日志文件中的前number行日志
[root@yeskylogs]#head-n-numbercatalina.out查询日志文件除了最后number行的其他所有日志
第一种方式(根据关键字查找出行号)
用grep拿到的日志很少,我们需要查看附近的日志。我是这样做的,首先:cat -n test.log | grep “关键词”
得到关键日志的行号
[root@yeskylogs]#cat-ncatalina.out|grep717892466
13230539 [11:07 1711] INFO nanjiang:Edit Old Article:717892466-2020-11-07 1711
13230593 [11:07 1715] INFO nanjiangSave Article ID IS:717892466
13230595717892466article.getDisplayTime()1=2020-11-071611
13230596717892466article.getDisplayTime()2=2020-11-071611
13230601[11:071715]INFO南江10.10.10.39editarticle717892466编辑文章
「cat -n catalina.out|tail -n +13230539|head -n 10」
-
tail -n +13230539
表示查询13230539行之后的日志 -
head -n 10
则表示在前面的查询结果里再查前10条记录
[root@yeskylogs]#cat-ncatalina.out|tail-n+13230539|head-n10
13230539 [11:07 1711] INFO nanjiang:Edit Old Article:717892466-2020-11-07 1711
13230540[11:071711]INFOTakes:2msclasscom.tmg.cms.manager.dao.article.impl.ArticleContentDaoImplgetListByArticleId[NzE3ODkyNDY2][int]
13230541[11:071711]INFOTakes:1msclasscom.tmg.cms.manager.dao.resourceImage.impl.ResourceImageDaoImplload
13230542[11:071711]INFOTakes:0msclasscom.tmg.cms.manager.dao.resourceImage.impl.ResourceImageDaoImplload
13230543[11:071711]INFOTakes:1msclasscom.tmg.cms.manager.dao.resourceImage.impl.ResourceImageDaoImplload
13230544 [11:07 1711] INFO article.getImage3:/uploadImages/2020/312/02/3NXCRK4U3589_2.jpg
13230545[11:071711]INFOTakes:0msclasscom.tmg.cms.manager.dao.resourceImage.impl.ResourceImageDaoImplload
13230546[11:071711]INFOTakes:2msclasscom.tmg.cms.manager.dao.privilege.impl.UserDaoImplgetUserByid
13230547[11:071711]INFOTakes:57msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplselectSitemapWithoutAudit[MQ==][int]
13230548[11:071711]INFOTakes:5msclasscom.tmg.cms.manager.dao.forbidword.impl.ForbidwordDaoImplgetForbidwordBysiteid[MjI=][int]
第二种方式:查看指定时间段内的日志
首先要进行范围时间段内日志查询先查看是否在当前日之内存在,
grep'11:071820'catalina.out
grep'11:071811'catalina.out
时间范围内的查询
sed-n'/11:071820/,/11:071811/p'catalina.out
sed-n'/11:0718/,/11:0718/p'catalina.out
第三种方式:查看日志中特定字符的匹配数目
[root@yeskylogs]#grep'1175109632'catalina.out|wc-l
154
第四种方式:查询最后number行,并查找关键字“结果”
[root@yeskylogs]#tail-n20catalina.out|grep'INFOTakes:1'
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.config.impl.ConfigInfoDaoImplload
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[NTkwOTQ5][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MzI0][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MzI3][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MzMw][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MzA5NA==][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[Mzc4Mg==][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[OTM1MA==][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MTE5MDMw][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[NTQ2MzQw][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[NTg2NzYy][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MzYyMjA=][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.configModule.impl.ConfigModuleDaoImplgetPersonMenuList
第五种方式:查询最后number行,并查找关键字“结果”并且对结果进行标红
[root@yeskylogs]#tail-n20catalina.out|grep'INFOTakes:1'--color
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.config.impl.ConfigInfoDaoImplload
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[NTkwOTQ5][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MzI0][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MzI3][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MzMw][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MzA5NA==][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[Mzc4Mg==][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[OTM1MA==][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MTE5MDMw][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[NTQ2MzQw][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[NTg2NzYy][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MzYyMjA=][int]
第六种方式:查询最后number行,并查找关键字“结果”并且对结果进行标红,上下扩展两行
[root@yeskylogs]#tail-n20catalina.out|grep'INFOTakes:1'--color-a2
[11:112251]INFOTakes:0msclasscom.tmg.cms.manager.dao.article.impl.ArticleContentDaoImplgetArticlePageNum[NzE4MTM2ODky][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.config.impl.ConfigInfoDaoImplload[com.tmg.cms.manager.model.config.ConfigInfo]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[NTkwOTQ5][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MzI0][int]
[11:112251]INFOTakes:0msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MzI1][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MzI3][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MzMw][int]
[11:112251]INFOTakes:0msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MzAzNg==][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MzA5NA==][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[Mzc4Mg==][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[OTM1MA==][int]
[11:112251]INFOTakes:0msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MTE0MjQ4][int]
[11:112251]INFOTakes:0msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MTE4MDc4][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MTE5MDMw][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[NTQ2MzQw][int]
[11:112251]INFOTakes:0msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[NTQ3MTIw][int]
[11:112251]INFOTakes:0msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[NTY4OTYx][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[NTg2NzYy][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImplgetSitemapTop[MzYyMjA=][int]
[11:112251]INFOTakes:1msclasscom.tmg.cms.manager.dao.configModule.impl.ConfigModuleDaoImplgetPersonMenuList[com.tmg.cms.manager.model.config.ConfigPersonMenu]
第七种方式:分页查看,使用空格翻页(使用more/less)
[root@yeskylogs]#tail-n2000catalina.out|grep'INFOTakes:1'--color-a2|more
[root@yeskylogs]#tail-n2000catalina.out|grep'INFOTakes:1'--color-a2|less
附加
1.全屏导航
-
ctrl + F
- 向前移动一屏 -
ctrl + B
- 向后移动一屏 -
ctrl + D
- 向前移动半屏 -
ctrl + U
- 向后移动半屏
2.单行导航
-
j
- 向前移动一行 -
k
- 向后移动一行
3.其它导航
-
G
- 移动到最后一行 -
g
- 移动到第一行 -
q / ZZ
- 退出 less 命令
-
服务器
+关注
关注
12文章
8666浏览量
84443 -
程序员
+关注
关注
4文章
945浏览量
29674 -
日志
+关注
关注
0文章
128浏览量
10591
原文标题:服务器爆了,你却连如何快速定位错误都不知道?这锅你背定了。。。
文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
Nginx日志分割方案
![Nginx<b class='flag-5'>日志</b>分割方案](https://file1.elecfans.com/web2/M00/8A/12/wKgZomSP_3aAPX5RAABNGx6ombc713.png)
logcat如何查看Andriod log系统日志?
最全的Nginx日志分割教程
log4j日志框架分析
![<b class='flag-5'>log</b>4j<b class='flag-5'>日志</b>框架分析](https://file.elecfans.com/web2/M00/94/E9/pYYBAGP9n36ARCiXAAGH2W3m17o808.png)
针对大量log日志快速定位错误地方
C#上位机开发(十三)之使用Log4net添加日志记录功能
![C#上位机开发(十三)之使用<b class='flag-5'>Log</b>4net添加<b class='flag-5'>日志</b>记录功能](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
Spring Boot的日志框架使用
![Spring Boot的<b class='flag-5'>日志</b>框架使用](https://file1.elecfans.com/web2/M00/89/1C/wKgaomR5WwmAXhoOAAJ-EercJrA306.jpg)
基于Rust的Log日志库介绍
Android日志与logd交互过程
![Android<b class='flag-5'>日志</b>与logd交互过程](https://file1.elecfans.com/web2/M00/B2/65/wKgZomVfE22AXYZVAAAevVMEkGw310.jpg)
评论