如何让 bunyan 记录一个像 console.log 这样的对象

问题描述

我正在使用 bunyan 设置,如下所示:

const logger = {
    [{ level: 'trace',stream: process.stderr }],name: 'api_name',hostname: process.env.API_HOST,serializers: bunyan.stdSerializers,src: true
}

我正在尝试记录一个对象,但结果很奇怪。

class Sample {
    constructor(public readonly sampleId: number) {}
}

const sample = new Sample(1);
logger.info(sample);

输出

{
  "name": "api_name","hostname": "api.domain.local","pid": 99999,"level": 30,"sampleId": 1,"msg": "","time": "2021-03-14T18:14:05.718Z","src": {
    "file": "/path/to/File.ts","line": 123,"func": "sampleFunctionName"
  },"v": 0
}

如您所见,sampleId 正在获取它自己的属性,我发现这是一种奇怪的行为 因为记录类似 logger.info('Something')内容会将“Something”放在 msg 属性中。

不应该是这样的:

{
  ...
  "msg": {
    "sampleId": 1
  }
  ...
}

这是预期的,如果是,我可以做些什么来获得第二个输出

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...