【发布时间】:2016-06-13 16:15:19
【问题描述】:
我正在使用自定义 winston 记录器来同时写入控制台和文件,具体取决于日志记录级别(即控制台的任何内容,但只有文件的错误和警告)。出于某种原因,写入控制台是有效的,而文件中没有写入任何内容,即使我调用了错误。
最初我弄乱了级别的顺序,从trace = 0 到error = 9。虽然我将设置winston 写入文件但没有写入控制台。我假设winston 只写入一个传输然后停止?
我的配置是这样的:
import winston from 'winston';
const logger = new (winston.Logger)({
levels: {
trace: 9,
input: 8,
verbose: 7,
prompt: 6,
debug: 5,
info: 4,
data: 3,
help: 2,
warn: 1,
error: 0,
},
colors: {
trace: 'magenta',
input: 'grey',
verbose: 'cyan',
prompt: 'grey',
debug: 'blue',
info: 'green',
data: 'grey',
help: 'cyan',
warn: 'yellow',
error: 'red',
},
});
logger.add(winston.transports.Console, {
level: 'trace',
prettyPrint: true,
colorize: true,
silent: false,
timestamp: false,
});
logger.add(winston.transports.File, {
prettyPrint: false,
level: 'error',
silent: false,
colorize: true,
timestamp: true,
filename: `${__dirname}/../logs/error.log`,
maxsize: 40000,
maxFiles: 10,
json: false,
});
【问题讨论】: