2016-05-30 4 views
2

ログを出力ファイルの1行に1行ずつ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ではありません。

関連する問題