winstonを使用してログをlogmaticに一年間近づけました。今週は、プロダクションサーバーをクラッシュさせるランダムな接続エラーが発生するため、私は一時的な修正としてそれをオフにしましたが、私は試してみましたが、動作しなかったものを好むでしょう。あなたはちょうどあなたが接続エラーを取得する理由を考え出すしている間、あなたのロガーを初期化した後キャッチエラー:getaddrinfo ENOTFOUND with winstonを使用して
const methods = ['info', 'warn', 'error'];
methods.forEach(method => {
logger[method] = new Proxy(logger[method], {
apply: function(target, thisArg, args) {
try {
target.call(logger, ...args);
} catch(error) {
console.error(error);
}
},
});
});
を行うことができ
const Winston = require('winston')
require('winston-logstash')
const transports = []
transports.push(new Winston.transports.Console({
level: 'debug',
colorize: true,
prettyPrint: true
}))
try {
transports.push(new (Winston.transports.Logstash)({
level: 'info',
port: 10514,
host: 'api.logmatic.asdsadio',
meta: { logmaticKey: 'Xen03ppdS_Cm24hxbz1_kg' },
node_name: 'api'
}))
const logger = new (Winston.Logger)({
transports: transports
})
}
catch (err) {
console.log(err)
}
module.exports = logger
なぜあなたはそれをオフにした場合try/catchが必要ですか? – alexmac
そしてtry/catchは初期化を転送するのではなく、それぞれの呼び出し側 'loggerに設定するべきです。() '呼び出し。しかしそれは意味をなさない。 –
alexmac
@alexmac安全に電源を入れることができます。共有しているコードはサービスを使用しています。それは私のローカル環境で、稼働中はオフになっています –