Log4js如何禁用HTTP请求自动日志记录?
解决log4js自动记录HTTP调用的问题
嘿,我看你这是被log4js自动打HTTP请求日志的问题搞头大了吧?明明在connectLogger里设了level: 'off',结果那些请求日志还是源源不断地出来,对吧?我之前也碰到过这个情况,给你说个一劳永逸的解决办法:
问题根源
问题出在你用的log4js.connectLogger这个中间件上——它就是专门用来生成HTTP请求访问日志的!这个中间件的职责就是监听每一个进来的HTTP请求,然后输出对应的日志条目。哪怕你把日志级别设为off,在某些log4js的版本里,这个中间件还是会输出那些标着[OFF]的日志,根本拦不住。
解决方案
最彻底的办法:移除中间件
直接把app.js里的这行代码删掉,就能完全禁用HTTP请求日志:
// 删掉这行,HTTP请求日志就不会再生成了 this.app.use(log4js.connectLogger(log4js.getLogger('production'), { level: 'off' }));
临时替代方案:空格式化函数
要是你暂时不想删除中间件(比如怕影响其他逻辑),可以给它设置一个空的格式化函数,让它没法生成日志内容:
this.app.use(log4js.connectLogger(log4js.getLogger('production'), { level: 'off', format: () => {} // 空函数,不会输出任何日志文本 }));
不过还是更推荐直接移除中间件,毕竟它的唯一作用就是记录HTTP请求日志,不需要的话留着纯属多余。
补充说明
看你生成的日志里显示的是development分类,但你初始化的是production的logger,这大概率是因为你的运行环境变量设成了development,不过这不影响咱们禁用HTTP日志的操作,只要处理掉connectLogger就好。
内容的提问来源于stack exchange,提问作者Or Assayag
相关产品推荐
相关产品推荐

