Как я могу использовать собственный регистратор в Fastify? - PullRequest
0 голосов
/ 20 марта 2019

В моей компании есть специально разработанный пакет средства ведения журнала, и мы хотим использовать его в качестве средства ведения журнала по умолчанию в fastify.Я попытался понять, как зарегистрировать мой регистратор с помощью этого простого примера ниже, bud fastify всегда использует Pino.

index.js

const log = require("./Logger");
const fastify = require("fastify")({ logger: log });

fastify.get("/", (request, reply) => {
    request.log(
        "includes request information, but is the same logger instance as `log`"
    );
    reply.send({ hello: "world" });
});

fastify.listen(3000)

logger.js

function Logger(...args) {
    this.args = args;
}
Logger.prototype.info = function(msg) {
    console.log("myLogger", msg);
};

logger.js также содержит функции error, debug, fatal, warn, trace, child, но тело функций такое же.

Результат:

{"level":30,"time":1553095994942,"msg":"Server listening at http://127.0.0.1:3000","pid":14543,"hostname":"VirtualBox","v":1}

, который является выходом Пино по умолчанию.

1 Ответ

1 голос
/ 20 марта 2019

как объяснено здесь , ваш регистратор

должен иметь следующие методы

Так что этот пример работает:

function Logger(...args) {
  this.args = args;
}
Logger.prototype.info = function (msg) { console.log("myLogger", msg); };
Logger.prototype.error = function (msg) { console.log("myLogger", msg); };
Logger.prototype.debug = function (msg) { console.log("myLogger", msg); };
Logger.prototype.fatal = function (msg) { console.log("myLogger", msg); };
Logger.prototype.warn = function (msg) { console.log("myLogger", msg); };
Logger.prototype.trace = function (msg) { console.log("myLogger", msg); };
Logger.prototype.child = function () { return new Logger() };


const myLogger = new Logger()
const app = require('fastify')({
  logger: myLogger
})

app.get("/", (request, reply) => {
  request.log.info('hi');
  reply.send({ hello: "world" });
});

app.listen(3000)

Здесь вы можете проверить проверку регистратора, примененную к вашему параметру

...