gpt4 book ai didi

javascript - 设置 Pino 级别给我 'log_1.default.level is not a function'

转载 作者:行者123 更新时间:2023-12-05 03:53:02 26 4
gpt4 key购买 nike

我已经在 KeystoneJS/NodeJS 项目中使用 Pino 设置了一个日志实用程序模块。它工作正常,但我想在投入生产时限制日志级别。

实用程序文件 util/log.js 已设置

import pino from 'pino';

const logger = pino({
prettyPrint: { colorize: true }
});

export default logger;

并导入到文件中(比如这里的index.ts)

从'./util/log'导入日志;

但是当我尝试设置级别时(这里我将其设置为“开发”,以测试它是否有效,稍后将设置为“生产”)

if (process.env.NODE_ENV === 'development') log.level('error');

出现以下错误

TypeError: log_1.default.level is not a function
at Object.<anonymous> (/Users/abc/Documents/projects/yaa-cms-new/tsout/index.js:29:19)

然而,所有对 log.errorlog.info 的调用在整个应用程序中都正常工作,也就是说,它正确导入了 Pino,我可以使用它。我只是无法设置级别。当我追踪导入的 log 对象时,我得到了

[1589881349511] INFO  (18641 on AGOMA1002.local):
levels: {
"labels": {
"10": "trace",
"20": "debug",
"30": "info",
"40": "warn",
"50": "error",
"60": "fatal"
},
"values": {
"trace": 10,
"debug": 20,
"info": 30,
"warn": 40,
"error": 50,
"fatal": 60
}
}

我不确定哪里出错了 - 非常感谢任何线索!

使用 Node 12.14.0、最新的 TypeScript 和

    "pino": "^6.2.1",
"pino-pretty": "^4.0.0"

最佳答案

正如@Manuel Spigolon 在上面正确指出的那样,设置 Pino 级别的正确方法是

log.level = 'error'

因为 logger.level 是一个 getter/setter(参见 https://getpino.io/#/docs/api?id=loggerlevel-string-gettersetter ),我知道它,但不知何故我无法处理它。

关于javascript - 设置 Pino 级别给我 'log_1.default.level is not a function',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61888133/

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