我正在编写一个自定义应用程序,它以 JSON 格式输出日志,输出文件中的每个日志一行。我想将这些日志同时放入 AWS CloudWatch 和 Splunk 进行分析。我的问题是将时间戳放在日志行中的标准位置是什么?它是否应该像这样在 JSON blob 之前进行:
2016-05-30 10:13:00 { "field1": 6, "field2": "Hello world!", ...}
或者它应该像这样进入 JSON:
{"timestamp": "2016-05-30 10:13:00", "field1": 6, "field2": "Hello world!", ...}
Splunk 似乎更喜欢后者,如果您告诉它日志格式是 _json,它似乎对前者不满意,您会收到如下错误:
05-28-2016 16:29:17.973 +0100 ERROR JsonLineBreaker - JSON StreamId:18154196253238674442 had parsing error:Unexpected character: '-' - data_source=.....
但是 Cloudwatch 似乎想要前者,即希望它的时间戳作为日志行的第一件事,这对于非 JSON 日志很好,但显然不适用于 JSON 日志。我试过到处寻找答案,虽然有很多关于时间戳格式的文章,但似乎没有任何内容涵盖这个与 JSON 相关的问题。