IDE日志分析方法pt。 2

介绍

在第一部分中,我解释了日志分析的理论方法,我认为这对维持工程师是最合适的。 这位工程师不需要在日志出现时立即对其进行分析,而是专注于对复杂问题的深入分析。 在第二部分中,我将展示一个复杂的模板可以涵盖许多搜索场景,并展示一个可行的原型。

搜索对象模板

搜索模板的主要要求是它必须是复杂的,在最佳情况下必须非常复杂。 手动搜索越少越好。 复杂的模板应完成大部分工作并快速完成。 由于我们这里没有任何服务器,因此仅预期可处理2-3 GB日志速度的开发人员PC也很重要。

主要正则表达式

模板应声明一些正则表达式,这些正则表达式将在日志中搜索(使用Matcher.find)。 如果首先声明多个,则收集第一个的结果,然后收集第二个的结果,等等。从最一般的意义上讲,搜索结果是String数组– List <String>。

验收标准

并非所有结果都被搜索过程接受。 例如,工程师可以搜索除“ X”以外的所有连接类型。 然后,他或她可以创建一个接受标准并过滤掉它们。 通过指定正则表达式“除X外的任何类型”。 另一种可能性是在时间间隔内搜索。 工程师可以搜索10到12个小时之间的任何日志记录(他或她必须输入完整的日期)。

寻找不同的表达也是可能的。 在这种情况下,工程师会指定一个以上的正则表达式(一般情况下会指定多个)。 一个例子将更好地解释这个概念。

不同的正则表达式:

connection type (q|w) 

主正则表达式找到的日志记录:

connection type w found
connection type q created
connection type s destroyed
connection type q found

独特搜索的结果:

connection type w found
connection type q created

参量

正则表达式的问题之一是,真正有用的正则表达式非常长且笨拙。 以下是日志中的样本日期:

2018-08-06 10:32:12.234

这是它的正则表达式:

\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d.\d\d\d

解决方案非常简单–使用替代。 我称它们为正则表达式的参数。 有些参数可能像记录时间一样是静态的,但有些可以由用户定义。 在执行之前,立即将参数替换为实际值。

观看次数

搜索的结果是日志记录,即类似

2018-08-06 10:32:12.234 [Thread-1] DEBUG - Connection 1234 moved from state Q to state W \r?\n

虽然找到模板中定义的内容非常好,但最好将信息分成有用的部分。 例如,此表以简洁明了的方式表示该记录中的所有有用信息:

连接 1234 -> w ^

要提取这些信息,我们可以使用“查看”方法。 这意味着声明在日志记录中搜索的较小的正则表达式,并返回一条有关日志记录的信息。 就像该日志记录的视图一样。 将所有内容显示在表格中将使其更易于阅读。 表也​​可以按任何列排序。

排序与合并

使用模板进行此类搜索的最有效方法是使用线程池,并将每个线程分配给日志文件。 假设池中有3-4个线程,则搜索将加快3-4倍。 但是合并结果成为一个重要的问题。 这里可以有2个解决方案:

  1. 合并结果 。 我们需要确保结果按正确的顺序排列。 如果我们有3个日志文件,第一个覆盖10-12个小时,第二个12-14,第三个14-17,则这些文件的搜索结果必须以相同的顺序进行。 这称为合并。
  2. 排序结果 。 除了合并它们,我们还可以按日期和时间对其进行排序。 不太复杂但简单。

合并看起来是一种更高级的技术,它使我们可以保留记录的原始顺序。

工作流程

日志分析

最后的想法

在本文中达到这一点的每个人都必须困扰的问题是:是否有人试图实现所有这些? 答案是肯定的! 有一个基于Eclipse框架的工作应用程序,其中包括Spring XML配置和许多其他内容。 搜索对象模板的工作方式如本文所述。

这是Github链接:

https://github.com/xaltotungreat/regex-analyzer-0

为什么是0? 好吧,这本来应该是一个原型,但在某种程度上仍然是原型。 我称这个应用程序为REAL

[R egular
ËXpressions
分析仪 对于L OGS

假定用户具有一些如何导出Eclipse RCP应用程序或如何从Eclipse IDE中启动它的知识。 不幸的是,我没有足够的时间来编写有关它的任何好的文档。 默认情况下,它可以分析HBase日志,并且config文件夹中有很多示例。

翻译自: https://www.javacodegeeks.com/2018/11/ide-approach-log-analysis-pt-2.html

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

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

相关文章

【渝粤题库】陕西师范大学200821 课程与教学论(计算机)

《课程与教学论》作业 一、选择题 1&#xff0e;教师应有高尚的思想道德和渊博的知识及教育能力&#xff0c;还必须具备良好的心理素质。下面不属于教师心理素质方面的是&#xff08; &#xff09;。 A&#xff0e;意志 B&#xff0e;自我意识 C&#xff0e;情绪 D&#xff0e;…

java电影票选座_jQuery实现电影票选座效果手机端代码

部分js代码//判断页面加载完成window.onload function () {if (document.readyState "complete") {$("body").show();}};var arr []; //已选座位数组var dj 99; //电影票单价 number$(".danjia").text(dj);/*遍历检查售票状态typ 0 可选typ …

【渝粤题库】陕西师范大学201571金融法作业(专升本)

《金融法》作业 一、单项选择题 1&#xff0e;下列银行中属于政策性银行的有&#xff08; &#xff09;。 A.中国人民银行 B.中国农业银行 C.浦东发展银行 D.中国进出口银行 2&#xff0e;中央银行的职能不包括&#xff08; &#xff09;。 A.发行的银行 B.储户的银行 C.银行的…

java char指针数组_简单总结C语言中各种类型的指针的概念

C语言中有很多关于指针的使用&#xff0c;指针也是C语言的灵魂所在&#xff0c;而且C语言中也有很多有关指针的概念&#xff0c;这里学习并总结了一些知道的概念。常量指针&#xff1a;首先它是一个指针&#xff0c;常量只是用来修饰指针的定语。其定义如下&#xff1a;char co…

【渝粤题库】陕西师范大学202081 管理学 作业 (专升本、高起本、高起专)

《管理学〉作业 一、判断改错 &#xff11;&#xff0e;使管理科学从重视对物的研究转向重视对人的研究的理论是马斯洛的需求层次理论。 &#xff12;&#xff0e;根据亨利明茨伯格的研究&#xff0c;管理者扮演的决策方面的角色包括组织发言人、纠纷调解者、资源分配者和谈判者…

【渝粤题库】陕西师范大学202961 教育社会学 作业(高起本、专升本)

《教育社会学》作业 一、 单项选择题 1&#xff0e;从研究对象上讲&#xff0c;教育社会学探究的主要是 A.广义教育 B.中观教育 C.狭义教育 D.社会教育 2&#xff0e;教育社会对自身以外的其他社会现象所发生的功能是 A.教育社会的外功能 B.教育社会的内功能 C.教育社会的负功能…

java 面试指南_Java面试参考指南–第1部分

java 面试指南JAVA面向对象的概念 Java in基于面向对象的概念&#xff0c;它允许更高级别的抽象以实际方式解决任何问题。 面向对象的方法将实际对象中的问题解决方案概念化&#xff0c;更易于在整个应用程序中重用。 例如椅子&#xff0c;风扇&#xff0c;狗&#xff0c;电脑…

java 提交的内存_Java使用内存映射实现大文件的上传

在处理大文件时&#xff0c;如果利用普通的FileInputStream 或者FileOutputStream 抑或RandomAccessFile 来进行频繁的读写操作&#xff0c;都将导致进程因频繁读写外存而降低速度.如下为一个对比实验。package test;import java.io.BufferedInputStream;import java.io.FileIn…

【渝粤题库】陕西师范大学210006幼儿园课程作业(高起专)

《幼儿园课程》&#xff08;专科&#xff09;作业 一、单选题 1、活动课程是以&#xff08; &#xff09;为中心来组织学习内容的。 A 学科 B 问题 C 概念 D 儿童 2、&#xff08; &#xff09;指的是幼儿园教师根据实际情况灵活的将课程方案转化为生动的课程实践&#xff08;现…

创建一个安全的Spring REST API

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕&#xff1f; 尝试使用Okta API进行托管身份验证&#xff0c;授权和多因素身份验证。 “如果有用&#xff0c;它将被修改。” 这些智慧之言来自我的QA老师&#xff0c;他们…

【渝粤题库】陕西师范大学292071社会统计学作业(高起专)

《社会统计学》作业 一、单项选择题 1、从历史上看&#xff0c;在社会经济统计学的形成过程中&#xff0c;首先使用“统计学”这一术语的是&#xff08; &#xff09;。 A. 政治算术学派 B. 国势学派 C. 数理统计学派 D. 社会经济统计学派 2、社会统计的研究对象是&#xff08;…

java并发编程十 原子累加器和Unsafe

文章目录 原子累加器cas 锁原理之伪共享 UnsafeUnsafe CAS 操作 原子累加器 累加器性能比较 private static <T> void demo(Supplier<T> adderSupplier, Consumer<T> action) {T adder adderSupplier.get();long start System.nanoTime();List<Thread…

mysql select 返回列_SQL / mysql – selectdistinct / UNIQUE,但返回所有列?

你正在寻找一个组&#xff1a;select * from table group by field1偶尔可以写一个独特的声明&#xff1a;select distinct on field1 * from table然而&#xff0c;在大多数平台上&#xff0c;上述两者都不会起作用&#xff0c;因为其他列上的行为是未指定的。 (MySQL中的第一…

【渝粤题库】陕西师范大学300018 世界史(下)

《世界史&#xff08;下&#xff09;》作业 一、名词解释 1、三权分立 2、考迪罗 3、斯大林格勒会战 4、马歇尔计划 5、匈牙利事件 6、美第奇家族 7、明治维新 8、人文主义 9、古巴导弹危机 10、奴隶贸易 11、七年战争 12、大西洋宪章 13、重商主义 14、文官制度 15、《解放宣言…

【渝粤题库】陕西师范大学600002 物理化学(下) 作业(专升本)

《物理化学&#xff08;下&#xff09;》作业 一.选择题 1.已知298 K时&#xff0c;(NH4)2SO4.NaOH.Na2SO4的 分别为3.064 10-2. 2.451 10-2.2.598 10-2 Sm2 mol-1&#xff0c;则NH4OH的为 ( ) A. 1.474 10-2 B. 2.684 10-2 C. 2.949 10-2 D. 5.428 10-2 2.质量摩尔浓度…

java中的规范是什么意思_Java中的异常规范有什么好处?

我从C来到Java.在Java和C中,我们都可以指定异常.看起来像这样&#xff1a;void function_name() throw(Exception){...if (error){throw Exception("Error");}...}据我所知,在C中编写异常规范被认为是一种不好的做法.与C不同,在Java中,我们必须这样做.所以,我的问题是…

jpa中::::_项目学生:JPA标准查询

jpa中::::这是Project Student的一部分。 其他职位包括带有Jersey的Webservice Client&#xff0c;带有Jersey的 Webservice Server &#xff0c; 业务层 &#xff0c; 具有Spring Data的持久性 &#xff0c;分片集成测试数据和Webservice Integration 。 我们已经介绍了CRUD的…

【渝粤题库】陕西师范大学800011 专题地图制图

《专题地图制图》作业 一、名词解释 1、专题地图 2、范围法 3、绝对比率符号 4、电子地图 5、普通地图 6、质底法 7、分级统计图法 8、条件比率符号 9、视觉重力 10、定位图表法 11、连续比率符号 12、互补色 二、填空 1、专题地图按照内容的概括程度可以分为 、 、 。 2、专题…

国家开放大学2021春1098中学数学教学研究题目

教育 教育 试卷代号&#xff1a;1098 2021年春季学期期末统一考试 中学数学教学研究 试题 2021年7月 一、填空题&#xff08;本题共20分&#xff0c;每个空2分&#xff09; 1&#xff0e;布卢姆把认知领域的目标分为 、 、 、________4个等级目标。 2&#xff0e;中学数学教学…

java 注解scheduler_使用spring的@Scheduled注解执行定时任务,启动项目不输出警告

在applicationContext.xml中添加&#xff1a;xmlns:task"http://www.springframework.org/schema/task"xsi:schemaLocation"http://www.springframework.org/schema/taskhttp://www.springframework.org/schema/task/spring-task-4.0.xsd">java代码&…