我知道传输是我想保留日志的地方,但是我不知道日志的级别是多少?我有以下代码来创建具有多种运输方式的记录器。
const logger = winston.createLogger({
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'logs/error.log', level: 'error' }),
new winston.transports.File({ filename: 'logs/info.log', level: 'info' }),
],
})
当我想登录logger.log('error', err)
时,它将同时登录info.log
和error.log
文件。为什么会这样呢?有人可以解释一下日志级别的想法吗?
答案 0 :(得分:1)
基诺的评论是正确的;在几乎所有日志记录平台(winston,log4js等)中,日志级别表示要打印的错误的最大级别。
将日志级别设置为ERROR意味着“仅打印FATAL和ERROR消息”。
将日志级别设置为INFO意味着“打印致命,错误,警告和INFO消息”。
无法(至少在Winston中是这样,但我认为总体上是正确的)指定仅携带INFO消息而不的日志传输错误消息。这是设计使然。
设置日志级别时,实际上是在指定详细级别-FATAL是最不详细的日志记录,DEBUG是最详细的日志记录。要求提供更多详细信息,然后使致命错误从日志中消失是没有意义的。这就是为什么每个错误级别还包括来自其“以下”级别的所有消息的原因。