gpt4 book ai didi

logging - 如何让 Sails.js 日志记录使用具有不同日志级别的多个 Winston 传输?

转载 作者:行者123 更新时间:2023-12-02 01:41:57 25 4
gpt4 key购买 nike

在搜索了 Sails.js 文档、GitHub 问题、Google 组和此处的 SO 之后,我仍然无法弄清楚我做错了什么......

我想使用 Winston 在 3 种不同的日志级别记录 3 种不同的传输:

在我的 config/log.js 文件中,我有以下内容:

var Winston = require('winston');
var Loggly = require('winston-loggly');
var Sentry = require('winston-sentry');

module.exports.log = {

// Without this the log level is prefixed to messages twice
// for some reason...
prefixes: {},

// Without this, Winston Sails seems to only send "info"
// logs to Winston (Sails' default log level)...
level: 'verbose',

custom: new Winston.Logger({
transports: [

new Winston.transports.Sentry({
level: 'warn',
dsn: '{my account dsn}',
patchGlobal: true
}),

new Winston.transports.Loggly({
level: 'info',
subdomain: '{my subdomain}',
inoputToken: '{my input token}'
}),

new Winston.transports.Console({
level: 'verbose'
})

]
})
};

但是上面的设置有很多问题:

  • verbose 日志正在发送到 Loggly...
  • 只有 root 错误出现在 Sentry 中,我认为这是来自 patchGlobal 选项。没有警告,也没有来自被拒绝的 Bluebird promise 的“可能未捕获的异常”错误。

谁能指出我正确的方向?我做错了什么?

最佳答案

嗯,看起来 Winston 是根据数字级别写入日志的。这样错误消息将始终写入信息日志,但信息永远不会写入错误日志。

所以我认为在config/bootstrap.js中分离到不同的实例会更好:

sails.warnLog = new (winston.Logger)({
transports: [
new (winston.transports.Sentry)({
name: 'warn-Sentry',
dsn: '{my account dsn}',
patchGlobal: true
level: 'warn'
})
]});

sails.infLog = new (winston.Logger)({
transports: [
new (winston.transports.Loggly)({
name: 'info-Loggly',
subdomain: '{my subdomain}',
inputToken: '{my input token}'
level: 'info'
})
]});

sails.verbLog = new (winston.Logger)({
transports: [
new (winston.transports.Console)({
name: 'verb-console',
timestamp: true,
prettyPrint: true,
colorize: true,
level: 'verbose'
})
]});

然后你可以写入日志:

sails.warnLog.warn('Warning');
sails.infLog.info('Information');
sails.verbLog.verbose('Verbose');

其实我不喜欢这样。真丑=(

关于logging - 如何让 Sails.js 日志记录使用具有不同日志级别的多个 Winston 传输?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28097925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com