0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

針對大量log日志快速定位錯誤地方

dyquk4xk2p3d ? 來源:良許Linux ? 2023-03-20 09:22 ? 次閱讀

	

	

查看服務(wù)器、應(yīng)用運行日志,這是每個程序員必備的工作技能,因為,日志是最好的查找出錯問題在哪的途徑。如果當(dāng)服務(wù)器爆了,你卻連如何定位錯誤都不知道?那么,這鍋你是背定了。。。

今天,我們就針對大量日志記錄中,如何快速定位錯誤?來聊一聊。

針對大量log日志快速定位錯誤地方

動態(tài)查看日志

tail-fcatalina.ou

從頭打開日志文件

catcatalina.ou

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

[root@yeskylogs]#cat-ncatalina.out|grep717892466>nanjiangtest.txt

tail/head簡單命令使用

[root@yeskylogs]#tail-nnumbercatalina.out查詢?nèi)罩疚膊孔詈髇umber行的日志
[root@yeskylogs]#tail-n+numbercatalina.out查詢number行之后的所有日志
[root@yeskylogs]#head-nnumbercatalina.out查詢?nèi)罩疚募械那皀umber行日志
[root@yeskylogs]#head-n-numbercatalina.out查詢?nèi)罩疚募俗詈髇umber行的其他所有日志

第一種方式(根據(jù)關(guān)鍵字查找出行號)

用grep拿到的日志很少,我們需要查看附近的日志。我是這樣做的,首先:cat -n test.log | grep “關(guān)鍵詞”得到關(guān)鍵日志的行號

[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則表示在前面的查詢結(jié)果里再查前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]

第二種方式:查看指定時間段內(nèi)的日志

首先要進行范圍時間段內(nèi)日志查詢先查看是否在當(dāng)前日之內(nèi)存在,

grep'11:071820'catalina.out
grep'11:071811'catalina.out

時間范圍內(nèi)的查詢

sed-n'/11:071820/,/11:071811/p'catalina.out
sed-n'/11:0718/,/11:0718/p'catalina.out

第三種方式:查看日志中特定字符的匹配數(shù)目

[root@yeskylogs]#grep'1175109632'catalina.out|wc-l
154

第四種方式:查詢最后number行,并查找關(guān)鍵字“結(jié)果”

[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行,并查找關(guān)鍵字“結(jié)果”并且對結(jié)果進行標(biāo)紅

[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行,并查找關(guān)鍵字“結(jié)果”并且對結(jié)果進行標(biāo)紅,上下擴展兩行

[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.全屏導(dǎo)航
  • ctrl + F- 向前移動一屏
  • ctrl + B- 向后移動一屏
  • ctrl + D- 向前移動半屏
  • ctrl + U- 向后移動半屏
2.單行導(dǎo)航
  • j- 向前移動一行
  • k- 向后移動一行
3.其它導(dǎo)航
  • G- 移動到最后一行
  • g- 移動到第一行
  • q / ZZ- 退出 less 命令

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8701

    瀏覽量

    84553
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    945

    瀏覽量

    29682
  • 日志
    +關(guān)注

    關(guān)注

    0

    文章

    129

    瀏覽量

    10593

原文標(biāo)題:服務(wù)器爆了,你卻連如何快速定位錯誤都不知道?這?鍋你背定了。。。

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何在Petalinux下定位decice-tree錯誤的一些技巧

    對于大部分錯誤,通過 petalinux 工具的 error log 已經(jīng)足夠定位錯誤類型和位置。
    的頭像 發(fā)表于 07-21 09:15 ?1853次閱讀
    如何在Petalinux下<b class='flag-5'>定位</b>decice-tree<b class='flag-5'>錯誤</b>的一些技巧

    Nginx日志分割方案

    nginx 默認(rèn)沒有提供對日志文件的分割功能,所以隨著時間的增長,access.log 和 error.log 文件會越來越大,尤其是 access.log,其
    發(fā)表于 06-19 15:05 ?402次閱讀
    Nginx<b class='flag-5'>日志</b>分割方案

    logcat如何查看Andriod log系統(tǒng)日志?

    logcat會輸出系統(tǒng)哪些信息呢?如何學(xué)習(xí)logcat命令?logcat如何查看Andriod log系統(tǒng)日志?如何查看Andriod log系統(tǒng)日志?
    發(fā)表于 03-03 06:15

    詳解MySQL三大日志的作用

    MySQL日志 主要包括錯誤日志、查詢日志、慢查詢日志、事務(wù)日志、二進制
    的頭像 發(fā)表于 07-22 14:44 ?1233次閱讀

    Log4Net日志存儲

    在上位機開發(fā)中,日志記錄是必不可少的,我們可以通過日志記錄做日志分析及錯誤追蹤。初學(xué)者會采用txt文本寫入來實現(xiàn)日志保存,但是文本寫入不是線
    的頭像 發(fā)表于 08-11 15:59 ?1903次閱讀
    <b class='flag-5'>Log</b>4Net<b class='flag-5'>日志</b>存儲

    最全的Nginx日志分割教程

    nginx 默認(rèn)沒有提供對日志文件的分割功能,所以隨著時間的增長,access.log 和 error.log 文件會越來越大,尤其是 access.log,其
    的頭像 發(fā)表于 02-16 14:51 ?934次閱讀

    log4j日志框架分析

    og4j是Apache下的一款開源的日志框架,能夠滿足我們在項目中對于日志記錄的需求。log4j提供了簡單的API調(diào)用,強大的日志格式定義以及靈活的擴展性。使用者可以自己定義Appen
    的頭像 發(fā)表于 02-28 14:32 ?998次閱讀
    <b class='flag-5'>log</b>4j<b class='flag-5'>日志</b>框架分析

    針對大量log日志快速定位錯誤地方

    用 grep 拿到的日志很少,我們需要查看附近的日志。我是這樣做的,首先: cat -n test.log | grep “關(guān)鍵詞” 得到關(guān)鍵日志的行號
    的頭像 發(fā)表于 04-21 09:22 ?625次閱讀

    C#上位機開發(fā)(十三)之使用Log4net添加日志記錄功能

    一、Log4net 官方網(wǎng)站: 。 下載二進制dll庫:包中提供了針對各個版本的dll庫: 二、使用日志庫 1. 添加庫 復(fù)制對應(yīng)的庫文件到項目中: 2. 配置log4net 2.1.
    發(fā)表于 05-29 16:25 ?1次下載
    C#上位機開發(fā)(十三)之使用<b class='flag-5'>Log</b>4net添加<b class='flag-5'>日志</b>記錄功能

    Spring Boot的日志框架使用

    目前市面上常見的日志框架有:slf4j(Simple Logging Facade for Java)、logback、log4j、log4j2、commons-logging(Spring默認(rèn)
    的頭像 發(fā)表于 06-02 10:59 ?851次閱讀
    Spring Boot的<b class='flag-5'>日志</b>框架使用

    服務(wù)器log日志大,掌握這些可正確快速定位錯誤!

    針對大量log日志快速定位錯誤
    的頭像 發(fā)表于 06-05 18:14 ?548次閱讀

    MySQL三種日志講解

    MySQL 日志包含了錯誤日志、查詢日志、慢查詢日志、事務(wù)日志、二進制
    的頭像 發(fā)表于 07-25 11:15 ?651次閱讀
    MySQL三種<b class='flag-5'>日志</b>講解

    Android異常日志快速定位分析小技巧

    Android異常日志快速定位分析小技巧
    的頭像 發(fā)表于 08-09 10:06 ?2396次閱讀
    Android異常<b class='flag-5'>日志</b><b class='flag-5'>快速</b><b class='flag-5'>定位</b>分析小技巧

    基于Rust的Log日志庫介紹

    Rust是一門系統(tǒng)級編程語言,因其安全性、高性能和并發(fā)性而備受歡迎。在Rust應(yīng)用程序中,日志記錄是一項非常重要的任務(wù),因為它可以幫助開發(fā)人員了解應(yīng)用程序的運行情況并解決問題。Rust的Log庫提供
    的頭像 發(fā)表于 09-19 14:49 ?3155次閱讀

    Android日志與logd交互過程

    2.2.3 Android日志與logd交互過程 2.2.3.1 Android日志傳遞給logd Android app層或framework層,通過調(diào)用Log/Slog/Rlog中d方法打印
    的頭像 發(fā)表于 11-23 17:06 ?750次閱讀
    Android<b class='flag-5'>日志</b>與logd交互過程