首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何禁用由温斯顿弹性堆栈客户端和传输生成的调试控制台输出?

如何禁用由温斯顿弹性堆栈客户端和传输生成的调试控制台输出?
EN

Stack Overflow用户
提问于 2020-05-12 22:55:43
回答 1查看 913关注 0票数 3

我使用winston v3.2.1winston-elasticsearch v0.8.8@elastic/elasticsearch v7.6.1winston-elasticsearch v0.8.8服务的日志条目推送到弹性搜索集群v7.6.2。

我的记录器构造如下(请参阅https://github.com/vanthome/winston-elasticsearchhttps://www.npmjs.com/package/@elastic/elasticsearch):

代码语言:javascript
复制
import { Client } from '@elastic/elasticsearch';
import winston, { Logger } from 'winston';
import { ElasticsearchTransport } from 'winston-elasticsearch';
import { ELASTIC_HOST, ELASTIC_PORT, LOG_LEVEL } from './environment';
...
        this.logger = winston.createLogger({
            transports: [
                new ElasticsearchTransport({
                    client: new Client({
                        node: `http://${ELASTIC_HOST}:${ELASTIC_PORT}`
                    }),
                    index: 'sector',
                    level: LOG_LEVEL // Events I log that are 'info' or worse will be transported.
                })
            ]
        });

然后直接使用logger引用进行日志记录:

代码语言:javascript
复制
this.logger.info(`Kill signal received: ${signal}`);

我可以看到,我的日志条目正被推送到弹性搜索集群,但是控制台日志中充斥着来自elasticsearchwinston:elasticsearch记录器的调试输出。我认为它们属于Elastic客户端和Elasticsearch传输实现。

代码语言:javascript
复制
2020-05-12T22:10:10.114Z elasticsearch Nothing to resurrect
...
2020-05-12T22:10:10.116Z winston:elasticsearch starting bulk writer
...
2020-05-12T22:10:18.122Z winston:elasticsearch nothing to flush
2020-05-12T22:10:20.123Z winston:elasticsearch tick
2020-05-12T22:10:20.123Z winston:elasticsearch nothing to flush

我的服务在Docker容器中运行,我不希望Docker日志中充斥着调试噪音。我试图将传输级别设置为error,甚至完全删除Console传输,但是调试噪声仍然存在。我尝试了以下方法来抑制控制台输出,但没有太大的成功:

  • winston.level = 'error';
  • winston.transports.Console.level = 'error';
  • winston.transports.Console.silent = true;
  • this.logger.remove(winston.transports.Console);
  • winston.remove(winston.transports.Console);

我在这个问题上找到了几条线索,但没有运气:

这几乎就像客户端和传输程序使用单独的日志机制一样。

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2020-05-13 17:36:40

我已经证实,这一输出根本不是温斯顿的作品。这就是为什么我不能使用上面列出的方法禁用它。

看起来,ElasticsearchTransport实现使用了一个名为调试的包。当在DEBUG环境变量中指定模式时,它会打开。我把它设置为DEBUG=*,这样我就可以看到Express输出。当我删除环境变量时,调试噪声就停止了。

如果在控制台中看到调试噪声,请检查 调试 包是否是原因。许多包似乎都在使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61763394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档