查看服务器、应用运行日志,这是每个程序员必备的工作技能,因为,日志是最好的查找出错问题在哪的途径。如果当服务器爆了,你却连如何定位错误都不知道?那么,这锅你是背定了。。。
今天,我们就针对大量日志记录中,如何快速定位错误?来聊一聊。
针对大量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 命令
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
服务器
+关注
关注
14文章
10467浏览量
91899 -
程序员
+关注
关注
4文章
957浏览量
31055 -
日志
+关注
关注
0文章
153浏览量
11119
原文标题:服务器爆了,你却连如何快速定位错误都不知道?这锅你背定了。。。
文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
Nginx日志分割方案
nginx 默认没有提供对日志文件的分割功能,所以随着时间的增长,access.log 和 error.log 文件会越来越大,尤其是 access.log,其
发表于 06-19 15:05
•1014次阅读
解锁LuatOS-log库:全栈工程师的日志管理实战课!
针对全栈开发者设计的实战教程,本文聚焦LuatOS平台log库的高效使用,从基础配置到高级调试策略,手把手教你搭建可扩展的日志系统,提升项目维护效率。 今天,我们一起来认识LuatOS的log
logcat如何查看Andriod log系统日志?
logcat会输出系统哪些信息呢?如何学习logcat命令?logcat如何查看Andriod log系统日志?如何查看Andriod log系统日志?
发表于 03-03 06:15
log4j日志框架分析
og4j是Apache下的一款开源的日志框架,能够满足我们在项目中对于日志记录的需求。log4j提供了简单的API调用,强大的日志格式定义以及灵活的扩展性。使用者可以自己定义Appen
针对大量log日志快速定位错误地方
用 grep 拿到的日志很少,我们需要查看附近的日志。我是这样做的,首先: cat -n test.log | grep “关键词” 得到关键日志的行号
C#上位机开发(十三)之使用Log4net添加日志记录功能
一、Log4net 官方网站: 。 下载二进制dll库:包中提供了针对各个版本的dll库: 二、使用日志库 1. 添加库 复制对应的库文件到项目中: 2. 配置log4net 2.1.
发表于 05-29 16:25
•1次下载
基于Rust的Log日志库介绍
Rust是一门系统级编程语言,因其安全性、高性能和并发性而备受欢迎。在Rust应用程序中,日志记录是一项非常重要的任务,因为它可以帮助开发人员了解应用程序的运行情况并解决问题。Rust的Log库提供
玩转Nginx日志管理:高效排查问题的终极指南
Nginx日志对于统计、系统服务排错很有用。Nginx日志主要分为两种:access_log(访问日志)和error_log(
针对大量log日志快速定位错误地方
评论