首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Winston仅写入单个传输

Winston仅写入单个传输
EN

Stack Overflow用户
提问于 2016-06-14 00:15:20
回答 1查看 438关注 0票数 0

我使用了一个自定义的winston日志记录器,根据日志级别同时写入控制台和文件(即,对控制台执行任何操作,但只对文件执行错误和警告操作)。由于某些原因,即使我调用了一个错误,在没有任何东西被写入文件的情况下,向控制台写入也是有效的。

起初,我把级别的顺序搞乱了,从trace =0一直到error = 9。虽然我已经设置好了,但winston只写到了文件,而没有写到控制台。我假设winston只写入一个传输,然后停止?

我的配置是这样的:

代码语言:javascript
复制
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,
});
EN

回答 1

Stack Overflow用户

发布于 2016-06-14 16:01:33

似乎我必须给每个传送器一个名字。也就是说。

代码语言:javascript
复制
logger.add(winston.transports.Console, {
  name: 'trace-console',
  // ...
});

logger.add(winston.transports.File, {
  name: 'error-file',
  // ...
});

现在,它似乎像预期的那样工作。

编辑:由于某些原因,这两个文件的colorize选项也必须设置为真(?)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37794579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档