gpt4 book ai didi

node.js - pino-pretty,如何将文件名添加到日志行

转载 作者:行者123 更新时间:2023-12-03 23:07:09 24 4
gpt4 key购买 nike

我需要将文件名添加到 pino-pretty 行输出中,
现在我正在使用:

const pino = require('pino');
const logger = pino({
prettyPrint: {
colorize: true,
translateTime: 'yyyy-mm-dd HH:MM:ss',
ignore: 'pid,hostname'
}
})

并有这个输出: [2020-05-14 16:25:45] INFO : Network is private
但我想要这样的东西: [2020-05-14 16:25:45] INFO myFile.js: Network is private
即我想在女巫启动时看到文件名,我尝试玩 customPrettifiers选项,但不能得到希望的结果,
例如我试试这个:
const pino = require('pino');
const path = require('path');
const logger = pino({
prettyPrint: {
colorize: true,
translateTime: 'yyyy-mm-dd HH:MM:ss',
ignore: 'pid,hostname',
customPrettifiers: {
filename: path.basename(__filename)
}
}
})

最佳答案

我认为你能得到的最接近的如下:

const path = require('path');
const pino = require('pino');
const logger = pino({
prettyPrint: {
// Adds the filename property to the message
messageFormat: '{filename}: {msg}',

// need to ignore 'filename' otherwise it appears beneath each log
ignore: 'pid,hostname,filename',
},
}).child({ filename: path.basename(__filename) });
请注意,您不能将文件名设置为与消息不同的样式,但希望这样就足够了。

拥有一个单独的 logger.js 可能也更好传递默认 pino 选项的文件,例如:
// logger.js
const logger = require('pino')({
prettyPrint: {
messageFormat: '{filename}: {msg}',
ignore: 'pid,hostname,filename',
},
});
module.exports = logger;
// file_with_logging.js
const parentLogger = require('./logger.js');
const logger = parentLogger.child({ filename: path.basename(__filename) });

关于node.js - pino-pretty,如何将文件名添加到日志行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61803101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com