您可以使用processor_gotime插件或processor_strptime插件解析原始日志中的时间字段。本文介绍两种插件的参数说明和配置示例。

Go语言时间格式

processor_gotime插件使用Go语言时间格式解析原始日志中的时间字段,并支持将解析结果设置为日志服务中的日志时间。

  • 参数说明
    配置 typeprocessor_gotimedetail说明如下表所示。
    说明 Logtail 0.16.28及以上版本支持该插件。
    参数 类型 是否必选 说明
    SourceKey String 原始字段名。
    SourceFormat String 原始时间的格式。
    SourceLocation Int 原始时间的时区。参数值为空时,表示本机时区。
    DestKey String 解析后的目标字段。
    DestFormat String 解析后的时间格式。
    DestLocation Int 解析后的时区。参数值为空时,表示本机时区。
    SetTime Boolean 是否将解析后的时间设置为日志时间。如果未添加该参数,则默认使用true,表示设置。
    KeepSource Boolean 是否保留原始字段。如果未添加该参数,则默认使用true,表示保留。
    NoKeyError Boolean 无匹配的原始字段时是否报错。如果未添加该参数,则默认使用true,表示报错。
    AlarmIfFail Boolean 提取失败是否告警。如果未添加该参数,则默认使用true,表示告警。
  • 示例
    原始时间( s_key字段)的格式为 2006-01-02 15:04:05(东八区),现将原始时间解析为 2006/01/02 15:04:05(东九区)格式,添加到 d_key字段中,并设置解析结果为日志服务中的日志时间。
    • 原始日志
      "s_key":"2019-07-05 19:28:01"
    • 配置详情
      {
        "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插件使用Linux strptime时间格式解析日志中的时间字段,并支持将解析结果设置为日志时间。

  • 参数说明
    配置 typeprocessor_strptimedetail说明如下表所示。
    说明 Logtail 0.16.28及以上版本支持该插件。
    参数 类型 是否必选 说明
    SourceKey String 原始字段名。
    Format String 原始时间的格式。
    AdjustUTCOffset Boolean 是否调整时区。如果未添加该参数,则默认使用false,表示不调整。
    UTCOffset Int 用于调整的时区偏移秒数。例如28800表示东八区。
    AlarmIfFail Boolean 提取失败时是否告警。如果未添加该参数,则默认使用true,表示进行告警。
    KeepSource Boolean 是否保留原始字段。如果未添加该参数,则默认使用true,表示保留。
  • 示例
    将原始时间( log_time字段的值)解析为 %Y/%m/%d %H:%M:%S格式的日志时间,时区使用机器所在时区。
    • 示例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