ExpressWinston не входит в систему с кодом ответа 200 HTTP - PullRequest
0 голосов
/ 16 апреля 2019

Я использую ExpressWinston для входа в приложение Node.js. Можем ли мы регистрировать запросы для каждого вызываемого статического ресурса?

Регистратор не регистрирует, если файл найден (200), но он регистрирует, когда файл не найден (404). Например, если запрос действителен, например, http://domain/css/existingfile.css, Logger не регистрирует. Однако, если запрос недействителен, например, http://domain/css/non-existingfile.css, Регистратор регистрирует с правильным кодом состояния 404.

Мне нужен журнал, когда файл также найден (200). Как настроить ExpressWinston так, чтобы он регистрировал все запросы с любым кодом состояния, возвращаемым сервером?

Привет

1 Ответ

0 голосов
/ 16 апреля 2019

В приведенной ниже конфигурации все запросы регистрируются в базе данных mongodb с использованием ExpressWinston и winston-mongodb независимо от кода состояния.Вы можете изменить транспорт на консоль или файл в зависимости от того, что вы хотите.Вы получите соответствующие метаданные для каждого запроса и ответа на основе вашего белого списка.

expressWinston.responseWhitelist.push('body')

const requestLog = expressWinston.logger({
  transports: [
    new winston.transports.MongoDB({
      db: db,
      options: {
        useNewUrlParser: true,
        poolSize: 2,
        autoReconnect: true
      }
    })
  ],
  meta: true,
  msg: (req, res) => 'HTTP {{req.method}} {{req.url}};',
  requestWhitelist: [
   'url',
   'method',
   'httpVersion',  
   'originalUrl',
   'query',
   'body'
  ]
});

Просто замените код в массиве транспорта на

transports: [
  new winston.transports.Console()
]

, если вы хотите отобразить в консоли.

...