建设官方网站公司,出纳工作内容,WordPress优惠券主题,景宁县建设局网站介绍 在第一部分中#xff0c;我解释了日志分析的理论方法#xff0c;我认为这对维持工程师是最合适的。 这位工程师不需要在日志出现时立即对其进行分析#xff0c;而是专注于对复杂问题的深入分析。 在第二部分中#xff0c;我将展示一个复杂的模板可以涵盖许多搜索场景我解释了日志分析的理论方法我认为这对维持工程师是最合适的。 这位工程师不需要在日志出现时立即对其进行分析而是专注于对复杂问题的深入分析。 在第二部分中我将展示一个复杂的模板可以涵盖许多搜索场景并展示一个可行的原型。 搜索对象模板 搜索模板的主要要求是它必须是复杂的在最佳情况下必须非常复杂。 手动搜索越少越好。 复杂的模板应完成大部分工作并快速完成。 由于我们这里没有任何服务器因此仅预期可处理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个解决方案 合并结果 。 我们需要确保结果按正确的顺序排列。 如果我们有3个日志文件第一个覆盖10-12个小时第二个12-14第三个14-17则这些文件的搜索结果必须以相同的顺序进行。 这称为合并。 排序结果 。 除了合并它们我们还可以按日期和时间对其进行排序。 不太复杂但简单。 合并看起来是一种更高级的技术它使我们可以保留记录的原始顺序。 工作流程 最后的想法 在本文中达到这一点的每个人都必须困扰的问题是是否有人试图实现所有这些 答案是肯定的 有一个基于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