以下错误正在终止我的生产应用程序:
/usr/src/app/node_modules/@nestjs/common/services/console-logger.service.js:137
? `${this.colorize('Object:', logLevel)}\n${JSON.stringify(message, (key, value) => typeof value === 'bigint' ? value.toString() : value, 2)}\n`
^
TypeError: Converting circular structure to JSON
--> starting at object with constructor 'ClientRequest'
| property 'socket' -> object with constructor 'Socket'
--- property '_httpMessage' closes the circle
at JSON.stringify (<anonymous>)
at ConsoleLogger.stringifyMessage (/usr/src/app/node_modules/@nestjs/common/services/console-logger.service.js:137:62)
at ConsoleLogger.formatMessage (/usr/src/app/node_modules/@nestjs/common/services/console-logger.service.js:130:29)
at /usr/src/app/node_modules/@nestjs/common/services/console-logger.service.js:122:43
at Array.forEach (<anonymous>)
at ConsoleLogger.printMessages (/usr/src/app/node_modules/@nestjs/common/services/console-logger.service.js:117:18)
at ConsoleLogger.error (/usr/src/app/node_modules/@nestjs/common/services/console-logger.service.js:44:14)
at Logger.error (/usr/src/app/node_modules/@nestjs/common/services/logger.service.js:34:75)
at Logger.descriptor.value (/usr/src/app/node_modules/@nestjs/common/services/logger.service.js:163:27)
at ExceptionsHandler.handleUnknownError (/usr/src/app/node_modules/@nestjs/core/exceptions/base-exception-filter.js:54:43)
我无法在开发时重现这个错误,而且我不知道是什么原因导致这个错误。有没有办法让堆栈跟踪包括这个错误的来源?
我已经用DEBUG=*
运行过了,但它没有给予我一个结论性的答案。
我 * 认为 * 错误发生在这些行附近(基于日志),但我不能肯定:
this.logger.error(error.toString())
throw new InternalServerErrorException(error.toString())
这似乎没有关系,因为error.toString()
的计算结果是[object Object]
(无用,但没有错)。
1条答案
按热度按时间wgeznvg71#
根据这些属性,看起来 * 很可能 * AxiosError或其他HTTP客户端错误被直接抛出,而没有转换为Nest知道如何处理的HttpException,然后Nest尝试注销错误。(如果您使用它)或您使用的任何其他HTTP客户端。如果您仍然找不到任何内容,我建议使用不同于Nest的日志记录器来处理循环JSON,我更喜欢ogma,但我也是它的作者,pino是另一个不错的选择