Google Compute Engine の Ubuntu 14.04 で nodeJS サーバーを実行しています。アプリケーションに Google クラウド ログを使用したいので、https: //cloud.google.com/logging/docs/agent/installation に従って Google fluentd ログ エージェントをインストールしました。
ログの書き込みには winston と winston-syslog を使用しました。これがコードです。
var winston = require('winston');
var winstonsyslog = require('winston-syslog').Syslog;
var options = {
json : true
};
winston.add(winston.transports.Syslog, options);
を使用してログを書いているとき
winston.log('info', "27", { anything: 'This is metadata' });
私は得ています
{
metadata: {…}
textPayload: "May 14 10:47:44 localhost node[7633]: {"anything":"This is metadata","level":"info","message":"27"}"
insertId: "..."
log: "syslog.local0.info"
}
ログを文字列ではなく JSON として表示する textPayload の代わりに structPayload を取得する方法。