我是node.js和JS的新手。我正在做一个基于node.js的测试程序。我只是选择了'pino'并像下面这样使用它:
const pino = require('pino');
const logger = pino({
prettyPrint: true
});
logger.info("Flow---XXXX");
当我运行npm run test | pino-pretty -c -t
时,它返回以下响应
- 输出:**
[1589538447177]信息(L-MAA-13i28828820上的00020):流量---XXXX
我有两个问题:
1.我在命令中设置了-t标志,我希望它将时间戳转换为用户理解的格式(如yyyy-mm-dd HH:mm:ss),但它仍然打印epoch格式,如上图所示。
1.我正在尝试将下面的代码行添加到项目中的所有JS文件中。是否可以将其命名为某个JS文件并将logger对象导出到其他js文件中?这就像不是在项目中的任何地方都调用下面的代码行,而是可以创建可重用的js文件并导出函数?
const pino = require('pino');
const logger = pino({
prettyPrint: true
});
我不知道是否2请求是可能实现的,但它会是伟大的,如果我得到一些线索..
先谢了。
更新:
我通过使用模块解决了第一个问题。导出选项如下:
module.export.log = function(input)
{
logger.info(input);
}
有人能帮我在日志中显示用户可读格式的时间吗?现在它打印纪元。我尝试了下面的代码,但仍然没有运气。
const logger = pino({
prettyPrint: true,
timestamp:`,"time":"${new Date(Date.now())}"`
});
我可以看到pino库中有一个常量变量,名为timestamp,默认值被指定为epoch time。
我会张贴,如果我找到任何解决方案
3条答案
按热度按时间yvfmudvl1#
记录有用的时间表示的正确方法是如下所示配置pino:
上面的代码实际上在
pino-logger
包中,实现这个功能的设置是prettyPrint.translateTime
。dl5txlt92#
我刚刚更改了pino.js文件中的以下详细信息,它现在返回用户可读格式的时间戳
time.js文件中,isoTime具有以下值
它返回了以下预期结果:
plicqrtu3#
2023年更新
我们需要一个ISO8601时间格式的时间戳,这里有描述,我们不希望像30这样的级别数字作为信息,而是我们希望标签,这就是为什么我添加了一个格式化程序