插件效果示例
表格展示该原始日志在分别使用时间解析插件(原生)与不使用插件的情况下,保存到日志服务后的数据结构。
原始日志 | 不使用插件 | 使用时间解析插件(原生) |
{"level":"INFO","timestamp":"2025-09-29T09:56:01+0800","cluster":"yilu-cluster-0728","message":"User logged in successfully","userId":"user-123"}
| Content:"{"level":"INFO","timestamp":"2025-09-29T09:56:01+0800","cluster":"yilu-cluster-0728","message":"User logged in successfully","userId":"user-123"}" | 
|
时间处理类插件概览
日志服务提供以下多种类型的时间处理类插件,请按需要进行选择。
插件名称 | 类型 | 功能说明 |
时间解析 | 原生 | 解析并标准化日志中的时间字段。 |
提取日志时间 | 拓展 | 解析原始时间字段并可设为日志时间戳。 |
功能入口
当您需要使用Logtail插件处理日志时,您可以在创建或修改Logtail配置时,添加插件。具体操作,请参见处理插件概述。
原生插件与拓展插件的区别
原生插件:C++实现,性能更强。
拓展插件:Go实现,生态丰富且灵活,当业务日志过于复杂,无法使用原生插件处理时,可以考虑使用拓展插件。
时间解析插件(原生)
时间解析插件用于解析日志的时间字段,并将解析结果设置为日志的__time__字段。
配置说明
参数名称 | 说明 |
原始字段 | 解析日志前,用于存放日志内容的原始字段,默认值为content。 |
时间格式 | 根据日志中的时间内容设置对应的时间格式。例如日志中的时间为10/Sep/2023:12:36:49,对应的时间转换格式为%d/%b/%Y:%H:%M:%S。 |
时区 | 选择日志时间字段所在的时区。如果不选择,则默认使用机器时区,即使用Logtail进程所在环境的时区。 |
常见日志时间格式
Logtail支持的常见日志时间格式如下表所示。
说明 默认情况下,日志服务中的日志时间戳精确到秒,所以时间格式只需配置到秒,无需配置毫秒、微秒等信息。
如果原始日志中的时间字段包含毫秒、微秒或纳秒级精度,且需在日志服务中保留该精度,请参见日志采集支持纳秒精度时间戳。
在Linux服务器中,Logtail支持strftime函数提供的所有时间格式。即能被strftime函数格式化的日志时间字符串都能被Logtail解析并使用。
时间格式 | 说明 | 示例 |
%a | 星期的缩写。 | Fri |
%A | 星期的全称。 | Friday |
%b | 月份的缩写。 | Jan |
%B | 月份的全称。 | January |
%d | 每月第几天,十进制,范围为01~31。 | 07, 31 |
%f | 秒的小数部分(毫秒、微秒或纳秒) | 123 |
%h | 月份的缩写,等同于%b。 | Jan |
%H | 小时,24小时制。 | 22 |
%I | 小时,12小时制。 | 11 |
%m | 月份,十进制,范围为01~12。 | 08 |
%M | 分钟,十进制,范围为00~59。 | 59 |
%n | 换行符。 | 换行符 |
%p | AM或PM。 | AM、PM |
%r | 12小时制的时间组合,等同于%I:%M:%S %p。 | 11:59:59 AM |
%R | 小时和分钟组合,等同于%H:%M。 | 23:59 |
%S | 秒数,十进制,范围为00~59。 | 59 |
%t | Tab符号,制表符。 | 无 |
%y | 年份,十进制,不带世纪,范围为00~99。 | 04、98 |
%Y | 年份,十进制。 | 2004、1998 |
%C | 世纪,十进制,范围为00~99。 | 16 |
%e | 每月第几天,十进制,范围为1~31。 如果是个位数字,前面需要加空格。 | 7、31 |
%j | 一年中的天数,十进制,范围为001~366。 | 365 |
%u | 星期几,十进制,范围为1~7,1表示周一。 | 2 |
%U | 每年的第几周,星期天是一周的开始,范围为00~53。 | 23 |
%V | 每年的第几周,星期一是一周的开始,范围为01~53。 如果一月份刚开始的一周>=4天,则认为是第1周,否则认为下一个星期是第1周。 | 24 |
%w | 星期几,十进制,范围为0~6,0代表周日。 | 5 |
%W | 每年的第几周,星期一是一周的开始,范围为00~53。 | 23 |
%c | 标准的日期和时间。 | Tue Nov 20 14:12:58 2020 |
%x | 标准的日期,不带时间。 | Tue Nov 20 2020 |
%X | 标准的时间,不带日期。 | 11:59:59 |
%s | Unix时间戳。 | 1476187251 |
示例
常见的时间标准、示例及对应的时间表达式如下所示。
示例 | 时间表达式 | 时间标准 |
2017-12-11 15:05:07 | %Y-%m-%d %H:%M:%S | 自定义 |
[2017-12-11 15:05:07.012] | [%Y-%m-%d %H:%M:%S | 自定义 |
2017-12-11 15:05:07.123 | %Y-%m-%d %H:%M:%S.%f | 自定义 |
02 Jan 06 15:04 MST | %d %b %y %H:%M | RFC822 |
02 Jan 06 15:04 -0700 | %d %b %y %H:%M | RFC822Z |
Monday, 02-Jan-06 15:04:05 MST | %A, %d-%b-%y %H:%M:%S | RFC850 |
Mon, 02 Jan 2006 15:04:05 MST | %A, %d %b %Y %H:%M:%S | RFC1123 |
2006-01-02T15:04:05Z07:00 | %Y-%m-%dT%H:%M:%S | RFC3339 |
2006-01-02T15:04:05.999999999Z07:00 | %Y-%m-%dT%H:%M:%S | RFC3339Nano |
1637843406 | %s | 自定义 |
1637843406123 | %s | 自定义(日志服务以秒级精度处理) |
提取日志时间插件(拓展)
使用processor_gotime插件或processor_strptime插件解析原始日志中的时间字段。此处介绍两种插件的参数说明和配置示例。
Go语言时间格式(processor_gotime)
processor_gotime插件使用Go语言时间格式解析原始日志中的时间字段,并支持将解析结果设置为日志服务中的日志时间。
表单配置方式
参数说明
配置处理插件类型为提取日志时间(Go语言时间格式)。

相关参数说明如下表所示。
参数 | 说明 |
原始时间字段 | 原始字段名。 |
原始时间格式 | 原始时间的格式。 |
原始时间时区 | 原始时间的时区。选择机器时区时,表示Logtail所在主机或容器的时区。 |
结果时间字段 | 解析后的目标字段,该字段不支持设置为__time__。 |
结果时间格式 | 解析后的时间格式。 |
自定义结果时间时区 | 解析后的时区。选择机器时区时,表示本机的时区。 |
高级参数>设为日志时间 | 选中该选项后,系统会将解析后的时间设置为日志时间。 |
高级参数>保留原始字段 | 选中该选项后,解析后的日志中将保留原始字段。 |
高级参数>原始字段缺失报错 | 选中该选项后,如果原始日志中无您所指定的原始字段,系统将报错。 |
高级参数>提取失败报错 | 选中该选项后,如果提取日志时间失败,系统将报错。 |
示例
原始时间(s_key字段)的格式为2006-01-02 15:04:05(东八区),现将原始时间解析为2006/01/02 15:04:05(东九区)格式,添加到d_key字段中,并设置解析结果为日志服务中的日志时间。
JSON配置方式
参数说明
配置type为processor_gotime,detail说明如下表所示。
参数 | 类型 | 是否必选 | 说明 |
SourceKey | String | 是 | 原始字段名。 |
SourceFormat | String | 是 | 原始时间的格式。 |
SourceLocation | Int | 是 | 原始时间的时区。参数值为空时,表示Logtail所在主机或容器的时区。 |
DestKey | String | 是 | 解析后的目标字段,该字段不支持设置为__time__。 |
DestFormat | String | 是 | 解析后的时间格式。 |
DestLocation | Int | 否 | 解析后的时区。参数值为空时,表示本机时区。 |
SetTime | Boolean | 否 | 是否将解析后的时间设置为日志时间。 |
KeepSource | Boolean | 否 | 被解析后的日志中是否保留原始字段。 |
NoKeyError | Boolean | 否 | 原始日志中无您所指定的原始字段时,系统是否报错。 |
AlarmIfFail | Boolean | 否 | 提取日志时间失败,系统是否报错。 |
示例
原始时间(s_key字段)的格式为2006-01-02 15:04:05(东八区),现将原始时间解析为2006/01/02 15:04:05(东九区)格式,添加到d_key字段中,并设置解析结果为日志服务中的日志时间。
原始日志
"s_key":"2019-07-05 19:28:01"
Logtail插件处理配置
{
"processors":[
{
"type":"processor_gotime",
"detail": {
"SourceKey": "s_key",
"SourceFormat":"2006-01-02 15:04:05",
"SourceLocation":8,
"DestKey":"d_key",
"DestFormat":"2006/01/02 15:04:05",
"DestLocation":9,
"SetTime": true,
"KeepSource": true,
"NoKeyError": true,
"AlarmIfFail": true
}
}
]
}
处理结果
"s_key":"2019-07-05 19:28:01"
"d_key":"2019/07/05 20:28:01"()
strptime时间格式(processor_strptime)
processor_strptime插件使用Linux strptime时间格式解析日志中的时间字段,并支持将解析结果设置为日志时间。
重要 Logtail 0.16.28及以上版本支持processor_strptime插件。
表单配置方式
参数说明
配置处理器类型为提取日志时间(strptime时间格式),相关参数说明如下表所示。
参数 | 说明 |
原始字段 | 原始字段名。 |
原始时间格式 | 原始时间的格式。 |
保留原始字段 | 选中该选项后,被解析后的日志中将保留原始字段。 |
提取失败报错 | 选中该选项后,如果提取日志时间失败,系统将报错。 |
进行时间偏移 | 选中该选项后,您可以设置时间偏移秒数。 |
时间偏移秒数 | 时间偏移秒数。例如28800表示东八区,-3600代表西一区。 |
配置示例
将%Y/%m/%d %H:%M:%S格式的原始时间(log_time字段的值)解析为对应的日志时间,时区使用机器所在时区。假设时区为东八区。
常见的时间表达式
说明 processor_strptime插件支持%f格式解析,表示秒的小数部分,最高精度为纳秒。
示例 | 时间表达式 |
2016/01/02 12:59:59 | %Y/%m/%d %H:%M:%S |
2016/01/02 12:59:59.1 | %Y/%m/%d %H:%M:%S.%f |
2016/01/02 12:59:59.987654321 +0700 (UTC) | %Y/%m/%d %H:%M:%S.%f %z (%Z) |
2016/Jan/02 12:59:59,123456 | %Y/%b/%d %H:%M:%S,%f |
2019-07-15T04:16:47:123Z | %Y-%m-%dT%H:%M:%S:%f |
JSON配置方式
参数说明
配置type为processor_strptime,detail说明如下表所示。
参数 | 类型 | 是否必选 | 说明 |
SourceKey | String | 是 | 原始字段名。 |
Format | String | 是 | 原始时间的格式。 |
AdjustUTCOffset | Boolean | 否 | 是否调整时区。 |
UTCOffset | Int | 否 | 用于调整的时区偏移秒数。例如28800表示东八区。 |
AlarmIfFail | Boolean | 否 | 提取日志失败时,系统是否报错。 |
KeepSource | Boolean | 否 | 被解析后的日志中,是否保留原始字段。 |
EnablePreciseTimestamp | Boolean | 否 | 是否提取高精度时间。 设置为true后,该插件会将SourceKey参数对应的字段值解析为毫秒级别的时间戳,并存入PreciseTimestampKey参照中对应的字段。更多信息,请参见Logtail日志采集支持高精度时间戳。 |
PreciseTimestampKey | String | 否 | 保存高精度时间戳的字段。默认值为precise_timestamp字段。 |
PreciseTimestampUnit | String | 否 | 高精度时间戳的单位。默认值为ms。取值包括ms(毫秒)、us(微秒)、ns(纳秒)。 |
示例
将%Y/%m/%d %H:%M:%S格式的原始时间(log_time字段的值)解析为对应的日志时间,时区使用机器所在时区。
示例1:假设时区为东八区。
原始日志
"log_time":"2016/01/02 12:59:59"
Logtail插件处理配置
{
"processors":[
{
"type":"processor_strptime",
"detail": {
"SourceKey": "log_time",
"Format": "%Y/%m/%d %H:%M:%S"
}
}
]
}
处理结果
"log_time":"2016/01/02 12:59:59"
Log.Time = 1451710799
示例2:假设时区为东七区。
原始日志
"log_time":"2016/01/02 12:59:59"
Logtail插件处理配置
{
"processors":[
{
"type":"processor_strptime",
"detail": {
"SourceKey": "log_time",
"Format": "%Y/%m/%d %H:%M:%S",
"AdjustUTCOffset": true,
"UTCOffset": 25200
}
}
]
}
处理结果
"log_time":"2016/01/02 12:59:59"
Log.Time = 1451714399
示例3:假设时区为东七区。
原始日志
"log_time":"2016/01/02 12:59:59.123"
Logtail插件处理配置
{
"processors":[
{
"type":"processor_strptime",
"detail": {
"SourceKey": "log_time",
"Format": "%Y/%m/%d %H:%M:%S.%f",
"EnablePreciseTimestamp": true
}
}
]
}
处理结果
"log_time":"2016/01/02 12:59:59.123"
"precise_timestamp": 1451714399123
Log.Time = 1451714399
常见的时间表达式
说明 processor_strptime插件支持%f格式解析,表示秒的小数部分,最高精度为纳秒。
示例 | 时间表达式 |
2016/01/02 12:59:59 | %Y/%m/%d %H:%M:%S |
2016/01/02 12:59:59.1 | %Y/%m/%d %H:%M:%S.%f |
2016/01/02 12:59:59.987654321 +0700 (UTC) | %Y/%m/%d %H:%M:%S.%f %z (%Z) |
2016/Jan/02 12:59:59,123456 | %Y/%b/%d %H:%M:%S,%f |
2019-07-15T04:16:47:123Z | %Y-%m-%dT%H:%M:%S:%f |