【问题标题】:Node winston cannot support multiple file transport?Node winston 不能支持多文件传输?
【发布时间】:2014-06-01 11:11:49
【问题描述】:

我想在一个文件中显示错误日志,在另一个文件中显示所有日志。为此,我编写了两个文件传输,在编译时出现以下错误:

 'use strict';

var winston = require('winston'),   
  config = require('./config');

var logger = new (winston.Logger)({
transports: [
  new (winston.transports.Console)({level:'debug',handleExceptions: true,prettyPrint: true,silent:false,timestamp: true,colorize: true,json: false}),
  new (winston.transports.File)({ filename: './server/logs/bv_common.log',level:'debug',maxsize: 1024000,maxFiles: 10, handleExceptions: true,json: false}),
  new (winston.transports.File)({ filename: './server/logs/bv_error.log',level:'debug',maxsize: 1024000,maxFiles: 10, handleExceptions: true,json: false,level:'error'})

]
  });


module.exports = logger;

结果:

   [ 'Error: Transport already attached: file',

【问题讨论】:

标签: node.js express winston


【解决方案1】:
var logger = new (winston.Logger)({
exitOnError: false, //don't crash on exception
transports: [
  new (winston.transports.Console)({level:'debug',handleExceptions: true,prettyPrint: true,silent:false,timestamp: true,colorize: true,json: false}),
  new (winston.transports.File)({ filename: './server/logs/' + config.appname +'_common.log',name:'file.all',level:'debug',maxsize: 1024000,maxFiles: 10, handleExceptions: true,json: false}),
  new (winston.transports.File)({ filename: './server/logs/' + config.appname +'_error.log',name:'file.error',level:'error',maxsize: 1024000,maxFiles: 10, handleExceptions: true,json: false})
]
  });

上面的代码,特别是共享传输的name参数,我们可以为loggers使用多个文件传输。

【讨论】:

    【解决方案2】:

    您收到此错误是因为您没有为文件传输提供“名称”属性。

    【讨论】:

      猜你喜欢
      • 2014-11-10
      • 2015-04-24
      • 2011-04-29
      • 2015-02-07
      • 1970-01-01
      • 1970-01-01
      • 2022-10-05
      • 2016-09-08
      相关资源
      最近更新 更多