Node.js - Winston ライブラリを使用してログにタイムスタンプを追加するにはどうすればいいですか? 質問する

Node.js - Winston ライブラリを使用してログにタイムスタンプを追加するにはどうすればいいですか? 質問する

ログにタイムスタンプを追加したい。

これを達成するための最善の方法は何でしょうか?

ありがとう。

ベストアンサー1

上記の回答は私にはうまくいきませんでした。Winston の最新バージョン 3.0.0-rc1 を使用してログにタイムスタンプを追加しようとしている場合は、次のようにするとうまくいきました:

    const {transports, createLogger, format} = require('winston');

    const logger = createLogger({
        format: format.combine(
            format.timestamp(),
            format.json()
        ),
        transports: [
            new transports.Console(),
            new transports.File({filename: 'logs/error/error.log', level: 'error'}),
            new transports.File({filename: 'logs/activity/activity.log', level:'info'})
        ]
    });

私は 'format.combine()' を使用しました。すべてのトランスポートにタイムスタンプが必要だったため、各トランスポート内ではなく、createLogger 内にフォーマット オプションを追加しました。コンソールとファイル (activity.log) の出力は次のとおりです。

{"message":"Connected to mongodb","level":"info","timestamp":"2018-02-01T22:35:27.758Z"}
{"message":"Connected to mongodb","level":"info","timestamp":"2018-02-01T22:35:27.758Z"}

'format.combine()' で通常どおりにこのタイムスタンプに書式設定を追加できます。

format.timestamp({format:'MM-YY-DD'})

おすすめ記事