使用虚拟字段从 log4j 日志中提取有价值的数据
在我们最近升级到 XpoLog V6 时,我们增强了 log4j 分析的功能。在本系列文章中,我将介绍一些您可以从 XpoLog V6 的新功能和增强功能中受益的方法。我将主要关注如何从 log4j 事件日志中获取最有价值的信息。如果您喜欢一次阅读所有帖子,我们还准备了 一个实践指南 。
将 log4j 日志传输到 XpoLog Center 并在其中正确定义后,您可以通过对 log4j 数据运行分析搜索来排除 java 应用程序的故障,测量应用程序性能,创建自己的 AppTags 以更好地监控,并创建仪表板、图表、幻灯片-显示,并使用其他可视化工具进行最大程度的日志分析。
这篇文章将向您展示如何在 XpoLog 中定义 log4j 日志,以创建最具可读性的数据,从而允许 XpoLog 对您的日志执行非常详细的分析。我还将向您展示一个示例,说明如何使用 RegularExpression 从您的消息中虚拟提取特定数据,以允许 XpoLog 对您的数据执行更精确的解析。
如果您想在阅读时按照我的步骤操作,可以 免费下载 XpoLog V6 。
在 XpoLog Center 中定义模式
要让 XpoLog 访问您的文件并从中提取数据,请使用名称、模式和数据模式定义记录器,然后在 XpoLog 中心定义日志模式。
例如:
#记录器定义
log4j.logger.mylog=错误,mylog
log4j.logger.com.mylog.logcollection=错误,mylog
……
#mylog 的 Appender 数据
……
log4j.appender.mylog.layout=org.apache.log4j.PatternLayout
log4j.appender.mylog.layout.ConversionPattern=[%d][%t] [%p] [%c] [%l] %m%n
( d = 日期, t = 线程, p = 优先级, c = 类, l = 方法, m = 消息, n = 新行)
在 XpoLog Center 中定义日志模式:
-
1. 在 XpoLog Center 中,添加一个新日志。 (请参阅我之前的帖子中的说明。)填写详细信息后,单击 “下一步” 进入 “日志模式” 屏幕。
-
2. 在 模式编辑器 的 向导 中,定义日志模式。
在 Pattern Editor 中单击 Manual 并编辑 XpoLog 数据模式以符合 log4j 布局:
A。 [%d] =[{date:Date,locale=en,yyyy-MM-dd HH:mm:ss,SSS}]
b. [%t] = [{文本:线程}]
C。 [%p]= [{priority:Priority,DEBUG;INFO;WARNING;ERROR;FATAL}]
d. [%c]= [{字符串:类}]
e. [%l]= [{string:Method}({text:Source}:{number:LineNumber})]
F。 %m = {字符串:消息}
G。 %n = 换行
我们示例中的 XpoLog 模式将是:
[{date:Date,locale=en,yyyy-MM-ddHH:mm:ss,SSS}] [{text:Thread}] [{priority:Priority,DEBUG;INFO;WARNING;ERROR;FATAL}][{string :Class}] [{string:Method}({text:Source}:{number:LineNumber})]{string:Message}
-
3. 单击 保存 。
您还可以在添加日志后编辑模式,我将在下一篇文章中详细介绍。
从您的消息中虚拟提取特定数据
如果您在数据传输之前使用正则表达式,XpoLog 还可以从消息中提取数据。
在不使用 RegularExpression 的情况下,消息在 添加日志 屏幕的 LogPattern 部分中可能看起来像这样:
在 Pattern Editor 中,您所看到的只是 {string:Message} 。
如果您使用正则表达式来提取出现在单词“Manager”之后的任何单词, AddLog 屏幕的 Log Pattern 部分将如下所示:
在 Pattern Editor 中,您现在将看到:
{regexp:HTMLManager state,refName=Message,HTMLManager:(\w+)}{string:Message}
在下面的 日志记录分析结果 部分,XpoLog 为您希望提取的数据添加了列 HTMLManager 状态 。
在 XpoLog Center 的 管理器界面 中,您可以在其中查看日志,您还将看到这个额外的列 HTMLManager state ,用于提取的数据:
通过将 HTMLManager 状态 提取到一个新的虚拟字段中,我们现在可以测量和监视 HTMLManager 状态 性能和活动。
在下一篇文章中,我将展示如何在通过 SysLog 向 XpoLog 发送日志事件和日志消息时定义和编辑 log4j 模式。请继续关注,或查看我们的“剧透”以获取 完整教程 。