You need to enable JavaScript to run this app.
文档中心
日志服务

日志服务

复制全文
下载 pdf
LogCollector 插件
时间解析插件
复制全文
下载 pdf
时间解析插件
您在使用 LogCollector 采集日志时,可以使用时间解析插件 strp_time 解析原始日志中的时间内容,并将解析后的时间作为日志时间戳记录在服务端。​
说明​
LogCollector V1.0.48 及后续版本支持该插件。如何查看LogCollector版本,请参考2 查看软件版本。​
参数说明​
​
名称​
类型​
是否必选​
说明​
field​
String​
是​
待解析的字段名称。​
format​
String​
是​
指定时间格式,用于解析时间内容。时间格式详情请参考时间格式。​
  • 默认情况下,配置时间转换格式时,支持配置到毫秒。如果时间转换格式中未指定毫秒级的解析方式,则毫秒部分会自动填充为 0。​
  • 开启高精度时间戳功能后,配置时间转换格式时,支持配置到纳秒。如果时间转换格式中未指定纳秒级的解析方式,则纳秒部分会自动填充为 0。​
time_zone​
String​
否​
配置时区。默认为 LogCollector 所在服务器的时区,支持 GMT 和 UTC。​
例如GMT+08:00, Asia/Shanghai。​
extract_regex​
String​
否​
用于提取时间的正则表达式。​
如果您只解析字段中的部分时间内容,可以通过正则表达式提取。​
enable_nanosecond​
Boolean​
否​
是否开启高精度时间功能。​
开启后,解析后的日志时间精度为纳秒级别。默认情况下,日志时间精度为毫秒级别。​
set_year​
String​
否​
当日志时间中缺少年份信息时,您可以通过该参数为日志时间补充年份信息。​
  • 可设置固定的具体年份,例如 "set_year": "2024"。​
  • 使用系统当前时间的年份,例如 "set_year": "auto"。​
  • 设置为 "set_year": "auto" 且配置了 time_zone 时,会将系统时间按照您配置的 time_zone 进行时区转化后再获取年份。​
  • 例如系统当前时间是伦敦时间 2023-12-31 20:00:00,time_zone 为 GMT+08:00 ,会将时间转换为北京时区的 2024-01-01 04:00:00,再使用 2024 作为年份。​
  • 设置为 "set_year": "auto" 时,在跨年时可能会因为极短的采集延迟导致年份错乱。建议在日志时间中打印年份信息。​
​
配置示例​
示例 1:未开启高精度时间功能​
  • 经过采集模式或者其他插件处理后的键值对日志​
  • ​
    {"message": "[2023-12-19T19:00:00,000] [INFO] java.lang.Exception: exception happened"}​
    ​
  • LogCollector 插件配置​
  • ​
    {​
    "processors": [​
    {​
    "strp_time": {​
    "field": "message",​
    "format": "%Y-%m-%dT%H:%M:%S,%f",​
    "time_zone": "GMT+08:00",​
    "extract_regex": "\\[(\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:\\d{2},\\d{3})\\]"​
    }​
    }​
    ]​
    }​
    ​
  • 处理结果​
  • 被解析后的日志时间戳为 1702983600000,即 2023-12-19 19:00:00,000。​
  • ​
    "message": "[2023-12-19T19:00:00,000] [INFO] java.lang.Exception: exception happened"​
    Log.Time=1702983600000​
    ​
示例 2:开启高精度时间功能​
  • 经过采集模式或者其他插件处理后的键值对日志。​
  • ​
    {"message": "[2024-05-15T12:30:19,123456789] [INFO] java.lang.Exception: exception happened"}​
    ​
  • LogCollector 插件配置​
  • ​
    {​
    "processors": [​
    {​
    "strp_time": {​
    "field": "message",​
    "format": "%Y-%m-%dT%H:%M:%S,%f",​
    "time_zone": "GMT+08:00",​
    "extract_regex": "\\[(\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:\\d{2},\\d{3})\\]",​
    "enable_nanosecond": true​
    }​
    }​
    ]​
    }​
    ​
  • 处理结果​
  • 被解析后的日志时间戳为 1715747419123,即 2024-05-15 12:30:19,123456789。​
  • ​
    "message": "[2024-05-15T12:30:19,123456789] [INFO] java.lang.Exception: exception happened"​
    Log.Time=1715747419123​
    ​
示例 3:自动补充日志时间中的年份信息​
  • 经过采集模式或者其他处理器插件处理之后的键值对日志​
  • ​
    {"message": "[01-01T04:00:00,123456] [INFO] java.lang.Exception: exception happened"}​
    ​
  • LogCollector 插件处理器配置​
  • ​
    {​
    "processors": [​
    {​
    "strp_time": {​
    "field": "message",​
    "format": "%m-%dT%H:%M:%S,%f",​
    "time_zone": "GMT+08:00",​
    "extract_regex": "\\[(\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:\\d{2},\\d{3})\\]",​
    "set_year": "auto"​
    }​
    }​
    ]​
    }​
    ​
  • 处理结果​
  • 假设开始处理该条日志的系统时间是 2023-12-31 20:00:00(GMT+00:00)​
  • 日志的检索时间为 2024-01-01 04:00:00,123。​
  • ​
    "message": "[01-01T04:00:00,123456] [INFO] java.lang.Exception: exception happened"​
    Log.Time=1704052800123​
    ​
​
最近更新时间:2026.09.07 15:05:53
这个页面对您有帮助吗?
有用
有用
无用
无用