【发布时间】:2022-08-03 20:00:11
【问题描述】:
要在我的项目中注册任何事件,我使用 pino。这是我的 \'Logger.js\' 文件:
require(\'dotenv\').config();
const pino = require(\'pino\');
const logger = (
name,
level = (process.env.LOG_LEVEL || \'info\'),
file = process.env.LOG_FILE || \'./log.log\',
) => pino({
name,
level,
transport:
{
targets: [
{ // то screen
target: \'pino-pretty\',
level,
options:
{
colorize: true,
translateTime: true,
sync: true,
},
},
{ // то file
target: \'pino-pretty\',
level,
options:
{
colorize: false,
translateTime: true,
sync: true,
destination: file,
},
},
],
},
});
module.exports = logger;
然后我在任何课程中使用这个记录器。比如像这个类:
const logger = require(\'./Logger\')(\'User\');
class testClass1 {
constructor(a) {
this.a = a;
}
async increase(x) {
logger.debug(`x=${x}`);
this.a += x;
return this.a
}
}
module.exports = testClass1;
类可以在项目文件中使用,例如:
const testClass1 = require(\'./testClass1\');
async function test() {
const test1 = new testClass1(2);
test1.increase(2);
}
test();
一切正常。但是如果使用 logger 的类的数量超过 10,我有一个警告:检测到可能的 EventEmitter 内存泄漏.
可以做些什么来避免这种情况? 也许有一些关于如何保存日志的建议?
标签: node.js memory-leaks pinojs