调用winston.debug生成的日志无法在Loggly UI中查看如何解决
问题原因
Winston 内置了日志级别优先级规则,默认优先级从高到低为:error > warn > info > verbose > debug > silly,默认的日志输出阈值为 info,只有优先级大于等于阈值的日志才会被处理输出。你当前的配置没有指定日志级别,走默认规则,debug 级别低于 info,所以会被直接过滤,不会发送到 Loggly。
解决方法
有两种配置方案可选,按需调整即可:
方案1:全局设置日志级别,所有传输器统一生效
不要直接调用 winston.add 添加传输器,改用 createLogger 方法初始化实例时指定全局阈值:
constructor() { // 初始化时指定全局日志级别为debug this.logger = winston.createLogger({ level: 'debug', transports: [new Loggly(this.logOptions)] }); this.test = new Test(this.logger); this.logger.info("mark1"); this.logger.debug("mark2"); // 现在可以正常输出 }
方案2:仅给Loggly传输器单独设置日志级别
如果需要不同传输器用不同的日志阈值,只需要在Loggly的配置项中添加level字段即可,不会影响其他传输器的规则:
private logOptions: LogglyOptions = { token: "my-customer-token", subdomain: "myDomain.com", tags: ["Winston-NodeJS"], json: true, level: 'debug' // 仅该Loggly传输器接收debug及以上级别的日志 };
如果后续需要输出更低级别的silly日志,直接把对应level配置改成silly即可。
内容的提问来源于stack exchange,提问作者xinthose
相关产品推荐
相关产品推荐

