单行全文正则是指将以换行符为结束标志的单行日志,按照用户提供的正则表达式进行结构化处理。处理完成后,会把日志内容以key-value的键值对形式存储。用户在检索日志的时候可以按照提取的字段,进行键值检索。
将键值提取模式切换至“单行全文正则”。
输入或粘贴日志样例。
输入或粘贴正则表达式。(查看正则表达语法)
点击“提取字段”,将会按照刚才输入的正则表达式对日志样例中的日志进行键值提取。提取结果展示在下方的日志提取字段列表中。如果提取失败,则需要检查输入的日志样例是否正确或填写的正则表达式是否正确。
21-03-28.19:35:33.907 [jdcloud_consumer_t1] INFO ConsumerService e2ecadf2258706e18edfaaa13347fdc7 - "hello world" env=test
^(?P<date>[\d]{2}-[\d]{2}-[\d]{2}).(?P<time>[\d:\.]+)\s+\[(?P<thread>.+)\]\s(?P<level>\w+)\s+(?P<class>\w+)\s+(?P<traceId>\w+)\s+-\s+(?P<content>.+)
说明:字段名称须通过正则语句 (?p<name>expression)
中的name进行修改,在提取结果列表中修改不生效。
正则调试
填写正则表达式过程中,您可使用https://regex101.com/ 检查和调试正则表达式,以使其完全匹配示例日志
操作截图
提取出字段后,可根据实际情况更改字段类型。
单行正则的日志样例大小不能超过1K
单行正则表达式的长度不超过256个字符
提取的字段数量及类型的限制如下:字符串(String)类型的字段不能超过30个,整数(Integer)类型的字段不能超过20个,浮点数(Float)类型的字段不能超过20个,时间(Time)类型的字段不能超过5个,IP类型的字段不能超过5个。
至少保留一个提取后的字段,不可删除所有提取的字段。
Time类型的字段需要用户设置时间解析格式。
支持设置的时间解析占位符列表如下:
输入 | 例子 | 详情 |
---|---|---|
YY |
21 | 两位数年份 |
YYYY |
2021 | 四位数年份 |
M |
1-12 | 月份,无前导零 |
MM |
01-12 | 月份,两位数,有前导零 |
MMM |
Jan-Dec | 缩写的英文月份名称 |
MMMM |
January-December | 完整的英文月份名称 |
d |
1-31 | 日期,月份里的一天,无前导零 |
dd |
01-31 | 日期,月份里的一天,两位数,有前导零 |
H |
0-23 | 小时,24小时制,无前导零 |
HH |
00-23 | 小时,24小时制,两位数,有前导零 |
h |
1-12 | 小时,12小时制,无前导零 |
hh |
01-12 | 小时,12小时制,两位数,有前导零 |
m |
0-59 | 分钟,无前导零 |
mm |
00-59 | 分钟,两位数,有前导零 |
s |
0-59 | 秒,无前导零 |
ss |
00-59 | 秒,两位数,有前导零 |
S |
0-9 | 毫秒,一位数 |
SS |
00-99 | 毫秒,两位数 |
SSS |
000-999 | 毫秒,三位数 |
A |
AM PM | 上午,下午,大写 |
a |
am pm | 上午,下午,小写 |