0

私のコードでconsole.log('message')を実行すると、Cloudwatchに
2017-03-16T18:58:21.823Z 863c835c-0a7a-11e7-9140-e5018d6e5029 messageと表示されます。Lambda(Node.js)からCloudwatchログのログ形式を変更します

Cloudwatchが私がconsole.logに渡す引数を表示するように自動フォーマットを削除する方法はありますか?あなたのハンドラ内

+1

あなたは何を「自動整形を参照している各ラムダログメッセージは、タイムスタンプとラムダ呼び出しIDに付加されている情報がありません?。ログは完全な混乱になるでしょう –

+0

それは自動的な書式設定です。要求IDは簡単に少数の文字に減らすことができ、区切り文字を時間、要求ID、メッセージの間に追加して解析しやすくなります...あなたは知っていますかどのようにそれを修正するには? – maniciam

答えて

2

あなたはstdoutに直接書き込むことがconsole.logを上書きすることができます

var util = require('util') 

module.exports.handler = function (event, context, done) { 
    console.log = function() { 
    var args = Array.prototype.slice.call(arguments) 
    process.stdout.write(args.map(function (arg) { 
     return util.isPrimitive(arg) ? String(arg) : util.inspect(arg) 
    }).join(' ')) 
    } 

    // the rest of your handler... 
} 
+0

素晴らしい、これは私が探していたものです。これは非同期的に起こっているようですが、 "フラッシュ" solutiに。あなたはこれを同期させる方法を知っていますか? – maniciam

+0

@maniciam残念ながら、完璧ではない解決策は、あなたのハンドラの 'done'コールバック関数を' const finish =(err、data)=> process.stdout.write( 'done'、()=> done(err、data) ) 'を呼び出し、' done() 'を直接呼び出す代わりに' finish() 'を呼び出します。 – idbehold

関連する問題