Loopback-обработчик ошибок и запись ошибок в файл - PullRequest
0 голосов
/ 30 октября 2018

Я не могу понять, как я могу настроить Loopback для сохранения вывода обработчика сильных ошибок в файл с правильной стратегией ведения журнала.

1 Ответ

0 голосов
/ 03 ноября 2018

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

Во-вторых, мы должны передать эти ошибки в наш файл журнала. Красивые люди уже сделали это здесь тоже. Некоторые рекомендуют Winston, в то время как другие делают это своими руками, а в образовательных целях, давайте использовать родной путь.

error-logger.js

'use strict';

const fs = require('fs');
const util = require('util');
const logFile = fs.createWriteStream(__dirname + '/debug.log', {flags: 'w'});
const logStdout = process.stdout;

module.exports = function(options) {
  return function logError(err, req, res, next) {
    console.log('unhandled error', err);
    logFile.write(util.format(err) + '\n');
    logStdout.write(util.format(err) + '\n');
    next(err);
  };
};

Не забудьте про промежуточное ПО.

server/middleware.json

{
  // ...
  "final:after": {
    "./middleware/error-logger": {},
    "strong-error-handler": {
      "params": {
        "log": false
      }
    }
}
...