2015-07-26 2 views
1

Я использую Node.js с экспресс-Winston для регистрации, как это:node.js экспресс-Winston errorLogger пропуск не работает

var express = require('express'); 
var app = express(); 

var winston = require('winston'); 
var expressWinston = require('express-winston'); 

var routes = require('./routes/index'); 

app.use("/", routes); 

app.use(
    expressWinston.errorLogger({ 
     transports: [ 
      new winston.transports.DailyRotateFile({ 
       name: 'file', 
       datePattern: '_dd-MM-yyyy.log', 
       colorize: true, 
       json: true, 
       filename: './logs/errors/error_log', 
       maxsize: 50 * 1024 * 1024, 
       maxFiles: 10, 
       zippedArchive: true 
      }), 
      new winston.transports.Console({ 
       json: true, 
       colorize: true 
      }) 
     ], 
     skip: function(req, res) { 
      return true; 
     } 
    }) 
); 

Обратите внимание, что я использую функцию пропуска и возвращающуюся true (для целей тестирования), чтобы пропустить все регистрационные записи ошибок, например, здесь: express-winston options

но это не сработает, никаких идей?

ответ

1

функция skip вызывается после того, как ответ был послан согласно README.md:

Функция для определения, если ведение журнала пропущен, по умолчанию для возвращения ложным. Вызывается после Ответ уже отправлен.

Для примера вы хотите использовать ignoreRoute вариант, который для Вашего случая будет функция, которая возвращает true.

Функция, которая определяет, пропускается ли ведение журнала, по умолчанию возвращается значение false. Вызывается до любого последующего промежуточного программного обеспечения.

app.use(
    expressWinston.errorLogger({ 
    transports: [ 
     new winston.transports.DailyRotateFile({ 
      name: 'file', 
      datePattern: '_dd-MM-yyyy.log', 
      colorize: true, 
      json: true, 
      filename: './logs/errors/error_log', 
      maxsize: 50 * 1024 * 1024, 
      maxFiles: 10, 
      zippedArchive: true 
     }), 
     new winston.transports.Console({ 
      json: true, 
      colorize: true 
     }) 
    ], 
      v------------------------------ use `ignoreRoute` instead of `skip` 
    ignoreRoute: function(req, res) { 
     return true; 
    } 
    }) 
);