1、查异常堆栈

显示该行及其后面的50行内容,然后通过 less 命令进行分页查看

grep -A 50 "NullPointerException" a.log | less

参数解释:

  • grep: 文本搜索命令
  • -A 50: After 的意思,显示匹配行后面的50行
  • “NullPointerException”: 要搜索的文本模式(Java空指针异常)
  • a.log: 目标日志文件
  • |: 管道符,将前一个命令的输出传递给后一个命令
  • less: 分页查看器,用于逐页浏览长文本

A的参数还可以替换为以下参数:

  • -B 50:Before的意思,显示匹配行前面的50行
  • -C 50:Context的意思,显示匹配行前后的50行(对称显示)

2、实时监控新日志

实时监控日志文件,当出现 “NullPointerException” 时,显示该异常及其后面的50行内容。

tail -f a.log | grep --line-buffered "NullPointerException"

参数解释:

  • tail -f: 实时跟踪文件的新增内容
  • a.log: 目标日志文件
  • –line-buffered:仅显示匹配的行

3、翻历史/压缩日志

快速定位多个日志文件中的空指针异常,并查看完整的错误堆栈信

grep -H -A 50 "NullPointerException" *.log

参数解释:

  • -H: 显示文件名(即使只搜索一个文件)
  • *.log: 匹配所有以 .log 结尾的文件
zgrep -H -A 50 "NullPointerException" *.gz

参数解释:

  • zgrep: 专门用于搜索压缩文件的grep命令
  • *.gz: 匹配所有以 .gz 结尾的压缩文件

4、统计异常数量

统计每个 .log 文件中包含 “NullPointerEWxception” 的行数

grep -c "NullPointerEWxception" *.log

-c: count 的意思,统计匹配行的数量

5、多种异常一起查

使用正则表达式在日志文件中同时搜索两种异常。

grep -E "NullPointerException|TimeoutException|IOException|SQLException" a.log

参数解释:

  • -E: 使用扩展正则表达式(Extended Regular Expressions),启用扩展正则表达式,使得 | 被解释为或操作符,而不是普通字符
  • “NullPointerException|TimeoutException|IOException|SQLException”: 匹配包含 “NullPointerException” 或者 “TimeoutException” 或者”IOException“或者”SQLException“的行

6、反向过滤(排除无关)

查找空指针异常并过滤掉调试信息

grep "NullPointerException" a.log -A 20 | grep -v "debug"

参数解释:

  • grep -v:反向匹配,显示不包含指定模式的行

7、按时间范围筛选日志

查询出2025-08-21 10点到11点之间出现的空指针异常

awk '/2025-08-21 10:/,/2025-08-21 12:/' a.log | grep "NullPointerException"

参数解释:

  • awk: 文本处理工具
  • /2025-08-21 10:/,/2025-08-21 12:/:范围模式(提取这两个时间点之间的所有行)
    • 起始模式:包含 “2025-08-21 10:” 的行
    • 结束模式:包含 “2025-08-21 12:” 的行

8、关键字AND查询

查找同时包含 “Exception” 和 “UserService” 的行

grep "Exception" a.log | grep "UserService"

9、定位最近一次异常

从日志文件的末尾开始搜索,找到最后一个 “NullPointerException” 并显示它及其后面的50行内容

tac a.log | grep -m 1 "NullPointerException" -A 50

参数说明:

  • tac: 反向显示文件内容(cat的反向命令),从文件的最后一行开始,逐行向上显示,相当于把文件内容完全颠倒顺序
  • |:管道,将反向排列的日志内容传递给 grep
  • -m 1: 最多匹配1次,找到第一个匹配就停止

10、异常排行

用于统计日志中各种异常的出现次数并按频率排序

grep "Exception" a.log | sort | uniq -c | sort -nr | head

参数说明:

  • grep “Exception” a.log:从 a.log 中筛选出包含 “Exception” 的所有行
  • sort:对异常行进行排序(按字母顺序)
  • uniq -c:合并相同的异常行并显示计数
  • sort -nr:按出现次数从高到低排序
    • n: 按数字排序
    • r: 反向排序(降序)
  • head:显示前10行(默认)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94037.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94037.shtml
英文地址,请注明出处:http://en.pswp.cn/web/94037.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW与CAN开发燃料电池监控

​基于 LabVIEW 与 CAN 总线技术,构建了一套多组质子交换膜燃料电池(PEMFC)堆监控系统。系统采用优质硬件设备,通过 LabVIEW 的图形化编程能力实现数据采集、实时监控与多堆切换控制,稳定可靠,为燃料电池性…

CVPR焦点 | 神经网络新范式:轻量化与精度并行,重塑视觉任务性能天花板

关注gongzhonghao【CVPR顶会精选】神经网络卷积想找新亮点?不妨考虑:动态结构设计。作为深度学习架构搜索与高效建模两大热点的结合,动态神经网络凭借自适应推理与高效特征利用的优势,在视觉识别、视频理解等任务中脱颖而出&#…

机器学习之集成算法学习

一、集成学习概述集成学习(ensemble learning)通过构建并结合多个个体学习器来完成学习任务,核心思想是 “集众家之长”—— 就像多个专家共同判断往往比单个专家更可靠。其关键在于如何生成多样化的个体学习器并设计有效的结合策略。结合策略…

Unreal Engine UE_LOG

Unreal🎮 Unreal Engine - UE_LOG📝 定义🏛 类/宏关联⚡ 关键特性🛠️ 常见配置📚 使用方法🔧 基础语法🔍 示例🪂 典型应用场景🔗 与其他组件对比⚠️ 常见问题与注意事项…

Halcon那些事:什么是动态阈值,如何用dyn_threshold分割图片

Halcon那些事:什么是动态阈值,如何用dyn_threshold分割图片 一、什么是动态阈值?为什么需要它? 1. 传统全局阈值的局限性 2. 动态阈值的核心思想 二、Halcon 中的核心算子:`dyn_threshold` 1. 算子原型 2. 参数详解 三、工作原理(数学模型) 四、详细使用步骤与实例 五、关…

Go初级二

Go初级入门(二):变量、常量与数据类型 大家好,欢迎来到《Go初级入门》系列的第二篇!在上一篇文章中,我们介绍了如何安装Go环境并运行第一个“Hello, World”程序。今天,我们将深入Go语言的基础语…

《战神:诸神黄昏》v1.0.668中文版,索尼大作,PC平台体验诸神黄昏

[游戏名称]: 《战神:诸神黄昏》v1.0.668中文版 [软件大小]: 175 GB [软件大小]: 夸克网盘 游戏介绍 《战神:诸神黄昏》是由索尼制作并发行的动作冒险游戏,作为《战神4》的正统续作,它继续了奎托斯与阿特柔斯的神话之旅。在诸神…

AI赋能环保精准治理:AI水质监测溯源快、空气质量预测施策准,守护生态新效能

传统环境保护工作长期受限于 “污染监测滞后”“溯源难度大”“治理方案针对性弱” 的问题,而 AI 技术的深度应用,正让环保工作从 “被动应对” 转向 “主动预判”,既能实时捕捉污染踪迹,还能精准制定治理方案,让生态保…

yolo训练实例(一)

yolo官网 https://github.com/ultralytics/ultralytics?tabreadme-ov-file 下载python和解除限制 https://www.python.org/downloads/windows/ Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled"…

STM32-BKP备份寄存器与RTC实时时钟

引言本文主要从BKP备份寄存器和RTC实时时钟的原理,特性及应用三个方面展开讨论,解析它们在STM32中的独特价值,助力开发者更好的掌握和运用它们。BKP备份寄存器的定义STM32的BKP备份寄存器是一种特殊的存储单元,它位于备份区域&…

Linux网络服务(五)——FTP服务详解与实践操作手册

文章目录前言一、FTP服务概述1.1 FTP基本定义1.2 VSFTP模式分类1.3 FTP端口作用二、FTP作用与工作原理(重点)2.1 FTP的作用、模式及通信方式2.1.1 FTP核心作用2.1.2 VSFTP模式与通信协议2.2 FTP工作原理与流程2.2.1 主动模式工作原理2.2.2 被动模式工作原…

5.3 包管理工具 npm yarn pnpm 对比

基本介绍 工具发布时间开发者定位npm2010 年npm Inc / OpenJS FoundationNode.js 官方包管理器Yarn2016 年Facebook(现 Meta)更快、更可靠的替代方案pnpm2016 年Zoltan Kochan高性能、节省磁盘空间 一、核心机制与设计差异 1. npm(Node Pa…

爬虫基础学习-授权认证,cookie认证,异常处理

验证: HTTPBasicAuthHandler(用户基本的身份验证处理) HTTPPasswordMgrWithDefaultRealm(经常和authhandler一起出现)#创建一个密码管理器 password_mgr urllib.request.HTTPPasswordMgrWithDefaultRealm() #添加进目…

开发避坑指南(34):mysql深度分页查询优化方案

问题语句 SELECT* FROMt_order_log l WHERE1 1 AND l.create_time > 2024-08-28 AND l.create_time < 2024-09-04 23:59:59 LIMIT 10000,10上述查询sql&#xff0c;即使create_time字段已建立索引&#xff0c;但偏移量达到几十万时候&#xff0c;查询耗时将近1分钟&…

Unreal Engine UFloatingPawnMovement

Unreal⚡ Unreal Engine - UFloatingPawnMovement&#x1f3f7; 定义&#x1f9e9; 类继承关系⚙️ 关键特性&#x1f6e0;️ 常见配置&#xff08;Details 面板/代码&#xff09;&#x1f4dd; 使用方法1) 在 Pawn 中添加组件&#xff08;C&#xff09;2) 绑定输入与驱动移动3…

某网盘不好用?有没有类似某网盘的存储软件?阿里云国际站 OSS:云存储的全能助手,你 get 了吗?

在这个数据爆炸的时代&#xff0c;数据存储和管理成为了众多企业和个人面临的一大挑战。想象一下&#xff0c;你是一位视频博主&#xff0c;随着粉丝量的增长&#xff0c;视频素材越来越多&#xff0c;电脑硬盘根本装不下&#xff0c;每次找素材都要花费大量时间。又或者你是一…

安全运维过程文档体系规范

安全运维过程文档体系规范 1. 文档体系总览 本文档体系严格遵循“安全运维生命周期”模型设计&#xff0c;涵盖业务建立、协同、运维管理、识别防御监测、响应和效果评估六个核心阶段。体系旨在通过标准化、规范化的文档管理&#xff0c;确保所有安全运维活动有章可循、有据可查…

【计算机网络】 IPV4和IPV6区别

IPv4 和 IPv6 是两代 互联网协议&#xff08;Internet Protocol&#xff09;&#xff0c;它们的核心作用都是&#xff1a; &#x1f449; 为网络设备分配唯一地址&#xff0c;让它们能在网络中互相通信。1️⃣ 地址长度IPv4&#xff1a;32 位&#xff08;4 字节&#xff09;&am…

哈希:最长连续序列

题目描述&#xff1a;无序的整型数组&#xff0c;求连续最长序列。 输入&#xff1a;nums [100,4,200,1,3,2] 输出&#xff1a;4 &#xff08;因为&#xff1a;最长数字连续序列是 [1, 2, 3, 4]&#xff0c;长度为 4。&#xff09; 说明&#xff1a;连续指的是数字的连续…

python中的生成器

概要python中的生成器是一种特殊的迭代器&#xff0c;如果按照c语言的说法&#xff0c;就是一种特殊的指针&#xff0c;但是python语言的一个语言特性是兼容了函数化编程&#xff0c;类似lambda匿名函数机制。本文重点介绍生成器表达式的使用&#xff0c;是一种很快捷&#xff…