【发布时间】:2019-11-05 18:15:18
【问题描述】:
我正在使用 jest 测试我的应用程序,但我的记录器存在一个小问题:它在测试路由时不断发送控制台日志。
我正在为我的记录器处理基本的winston 配置:
logger.config.js
const winston = require('winston');
const { env } = require('./variables.config.js');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
if (env === 'development') {
logger.add(new winston.transports.Console({
format: winston.format.simple()
}));
}
logger.stream = {
write: (message) => {
logger.info(message.trim());
}
};
module.exports = logger;
index.js
const app = require('./config/express.config');
const logger = require('./config/logger.config');
const server = app.listen(port, logger.info(`Running on port ${port} (${env})`));
module.exports = server;
我在测试中使用server 以及supertest:
some.test.js
const request = require('supertest');
const app = require('../../config/express.config');
...而且,是的...每个请求都会在我的控制台上显示我不想要的日志。如何防止我的记录器在测试我的应用时显示消息?
提前致谢!
【问题讨论】: