阅读278 返回首页    go 微信


分隔符日志__常见日志格式_用户指南_日志服务-阿里云

分隔符日志以换行符作为边界,每一个自然行都是一条日志。

每一条日志以固定分隔符(Separator,如制表符、空格、竖线、逗号、分号等单字符)连接日志的多个字段。如果字段内部包含分隔符,使用Quote(双引号)对字段进行包裹。

常见的分隔符日志有:CSVTSV等。

日志示例

  1. 05/May/2016:13:30:28,10.200.98.220,"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0UjpekFQOVJW45A&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1",200,18204,aliyun-sdk-java
  2. 05/May/2016:13:31:23,10.200.98.221,"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0UjpekFQOVJW45A&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1",401,23472,aliyun-sdk-java

采集配置

delimiter日志配置1

如上日志样例,使用逗号(,)进行分割,一共包含6列,设置列名分别为:time,ip,url,status,latency,user-agent。

delimiter日志配置2

可以使用选择系统时间作为一条日志的时间,也可以使用日志的一列作为时间,比如选择time字段(05/May/2016:13:30:29)作为时间,配置日期格式请参考Logtail日期格式

采集结果

delimiter采集预览

更多日志格式问题

Separator

分隔符日志使用分隔符(separator)将一条日志切分成多个字段,有以下格式要求:

  • separator必须是单个字符,例如制表符(t)、空格、竖线(|)、逗号(,)、分号(;)等单字符。
  • spearator不允许设置为多字符,例如||,&&&等形式。
  • spearator不允许设置为双引号(”),双引号被作为默认的quote。

Quote

为了防止日志的字段内部包含分隔符(separator),使用quote(双引号)对字段进行包裹。如果内容中在非quote情况下出现双引号,需要进行转义,处理成””。

  • 使用双引号作为quote

使用逗号(,)作为separator,quote必须紧邻separator(如有两者之间包含空格、制表符等字符,请修改格式),日志样例如下:

  1. 1997,Ford,E350,"ac, abs, moon",3000.00

解析成5个字段:

字段1 字段2 字段3 字段4 字段5
1997 Ford E350 ac, abs, moon 3000.00
  • 日志字段内通过转义处理双引号

第3个日志字段内有双引号,但并不作为quote使用,日志样例如下:

  1. 1999,Chevy,"Venture ""Extended Edition, Very Large""","",5000.00

解析成5个字段下:

字段1 字段2 字段3 字段4 字段5
1999 Chevy Venture “Extended Edition, Very Large” 5000.00

也就是说,双引号(”)要么作为quote使用,在字段的边界单次出现,要么作为字段内数据成对出现(””),其它情况不符合分割符日志的格式定义,请考虑其它方式(极简模式,正则模式等)进行字段解析。

更多细节请参考:维奇百科百度百科

最后更新:2016-11-24 11:23:48

  上一篇:go syslog日志__常见日志格式_用户指南_日志服务-阿里云
  下一篇:go JSON日志__常见日志格式_用户指南_日志服务-阿里云