エクスプレスアプリでウィンストン(2.x)のデフォルトロガーを設定するためのチュートリアルに従いました。 winstonの現在のバージョン(3.0.0)に更新するとき、トランスポートの追加に問題があります。 最新のドキュメント に従いましたが、それでもコンソールに通知が表示され、ログファイルはまったく作成されません。
[ウィンストン]トランスポートなしでログを書き込もうとしています
logging.js
const winston = require('winston');
module.exports = function () {
const files = new winston.transports.File({ filename: 'logfile.log' });
const myconsole = new winston.transports.Console();
winston.add(myconsole);
winston.add(files);
}
index.js
const winston = require('winston');
...
require('./logging');
winston.info("Give some info");
[winston]トランスポートなしでログを書き込もうとしている{"message": "Give some info"、 "level": "info"}
私は何を間違えていますか?
同様の問題もありました。正しく思い出せば、要件をindex.jsの関数として呼び出す必要がありました。
require('./logging')();
Winston 3では、logger
オブジェクトを作成し、transport
sを追加する必要があります。
Winston 3には多くの 例 がありますが、 readme から適応するには、次のようにします:
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.Console(),
new winston.transports.File({ filename: 'logfile.log' })
]
});
logger.info('it works!!');
Winston v3でデフォルトのロガーを使用する場合は、このコードをメインファイルに追加するだけです。
const winston = require('winston')
winston.add(new winston.transports.File({ filename: 'logfile.log' }))