2016-05-30 64 views
2

我正在寫一個自定義應用程序,以JSON格式輸出日誌,每個日誌在輸出文件中一行。我希望將這些日誌同時用於AWS CloudWatch和Splunk進行分析。我的問題是在日誌行中放置時間戳的標準位置是什麼?如果它的JSON斑點像在此之前去:何時在JSON日誌中放置時間戳

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的看來是希望前者,即希望其作爲日誌行的第一件事情,這是罰款,對非JS時間戳ON日誌,但顯然不是用於JSON日誌。我試着在各處尋找答案,雖然有很多關於時間戳格式的文章,但似乎沒有涉及這個與JSON相關的問題。

回答

0

正如你所寫,每條消息記錄一個純JSON對象是最好的方法。 不支持此功能的工具不能很好地支持JSON日誌記錄。

Splunk可以很好地讀取JSON日誌行。它甚至爲你解析消息並在搜索結果中突出顯示。

然而,不同之處在於,如果它不是可解析爲一個JSON對象日誌行不JSON沒有標準方式。