环回强错误处理程序并将错误记录到文件

时间:2018-10-30 20:19:47

标签: logging loopbackjs

我不明白如何配置环回,以使用适当的日志记录策略将强错误处理程序的输出存储到文件中。

1 个答案:

答案 0 :(得分:1)

这里有两个部分需要处理。首先,我们需要抓住错误。可以很容易地做到这一点,只需传递层/中间件即可拦截错误,如官方文档{p> 3所述

第二,我们必须将这些错误传递到日志文件中。英俊的人也已经完成了here。有些人推荐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
      }
    }
}