d-t*_*d-t 7 logging node.js fastify
我的公司有一个定制开发的记录器包,我们想在 fastify 中使用它作为默认记录器。我试图通过下面这个简单的例子来了解如何注册我的记录器,但是 fastify 总是使用 Pino。
索引.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)
Run Code Online (Sandbox Code Playgroud)
记录器.js
function Logger(...args) {
this.args = args;
}
Logger.prototype.info = function(msg) {
console.log("myLogger", msg);
};
Run Code Online (Sandbox Code Playgroud)
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}
Run Code Online (Sandbox Code Playgroud)
whiitch 是默认的 Pino 输出。
Man*_*lon 10
为解释在这里,你的记录器
必须有以下方法
所以这个例子有效:
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)
Run Code Online (Sandbox Code Playgroud)
在这里您可以检查应用于您的参数的记录器验证
| 归档时间: |
|
| 查看次数: |
4060 次 |
| 最近记录: |