温斯顿:了解日志记录级别

2024-01-08

阅读和摆弄温斯顿,我很困惑为什么日志记录级别按原样排序,以及为什么传输以它们的方式运行(好吧,至少是控制台)。如果有人能够(甚至可能彻底)用真实的用例示例解释为什么使用 Winston 进行日志记录会以这种方式工作,我将不胜感激。

例如,我像这样设置我的记录器:

var logger = new (winston.Logger)({
  levels: winston.config.syslog.levels,
  colors: winston.config.syslog.colors,
  level: "debug",  // I'm not sure what this option even does here???
  transports: [
    new (winston.transports.Console)({
      colorize: true,
      handleExceptions: true,
      json: false,
      level: "debug"
    })
  ]
});

所以,如果我这样做logger.debug("Test");,然后它会记录debug: Test, 美好的。但如果我这样做logger.info("Test");,然后什么也不会发生。

我遇到的问题是,如果我想登录到控制台一切 but debug消息,我该怎么办? ... 甚至debug and info消息,但记录其他所有内容?

来自 Java 世界,使用标准记录器,我习惯于debugwarn伐木工则倒着工作;将日志记录级别设置为info,例如,确实记录了除debug(或者其他的东西)。

另外,如果我想要一个记录器只记录怎么办error, warning and info消息,我该如何与温斯顿做呢?

* EDIT *

显然,这种级别顺序是独一无二的winston.config.syslog.levels。因此,剩下的唯一问题是:“是否有可能以某种方式将传输限制为非常特定的日志记录级别?”


根据文档 https://github.com/flatiron/winston#using-custom-logging-levels,您可以设置自己的日志记录级别,0 为最低,并将颜色与其关联。现在,如果您不想记录最低级别,只需设置level属性达到相应等级。默认情况下,控制台记录器的级别设置为info

所以,这是一个例子:

logger = new (winston.Logger)({
  levels: {
    'info': 0,
    'ok': 1,
    'error': 2
  }
  transports: [
    new (winston.transports.ConsoleTransport)(silent: options.silent, level: 'ok')
  ]
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

温斯顿:了解日志记录级别 的相关文章

随机推荐

  • Angular ui-grid 外部导出按钮

    我是 Angular UI GRID 的新手 我需要为导出功能创建外部按钮 例如PDF导出 and CSV 导出相似的到这张图片 https i stack imgur com kNkQH png 你知道我该怎么做吗 我还需要一个 打印 按
  • 错误:[Errno 32] 管道损坏 django

    有时 当我查看终端时 我会看到以下错误 任何人都可以让我知道它正在显示以及如何避免它 Exception happened during processing of request from 127 0 0 1 39444 Tracebac
  • 在 ASP.NET 中绑定 jqGrid 时出现问题

    我是使用 jqGrid 和 jquery 的新手 我无法将从 webmethod 检索到的 json 数据绑定到 jqGrid 上 我还使用 firebug 进行交叉验证 并且我正在从中接收数据 关于这方面的一些帮助将会很棒 我还想知道是否
  • 是否可以更新/覆盖 Airflow [‘dag_run’].conf?

    我们通常使用以下方式启动 Airflow DAG trigger dagCLI 命令 例如 airflow trigger dag my dag conf field1 1 field2 2 我们在操作员中使用以下命令访问此配置contex
  • 如何将参数传递给 jQuery UI 对话框事件处理程序?

    我目前正在尝试连接 jQuery UI 对话框 以便我可以使用它在我的页面上创建新项目并修改页面上已有的项目 我在前者中做到了 然而 我目前正在为后一个问题而苦苦挣扎 我只是找不到一种好的方法来将要修改的项目传递到对话框 这里有一些代码可以
  • 找不到资源包异常

    我想使用一个名为的资源包strings但在运行我的主要方法时出现以下错误MainApplication java java util MissingResourceException Can t find bundle for base n
  • 如何在 Python 中查找第二天同一小时的 Unix 时间戳(包括 DST)?

    在Python中 我可以找到本地时间的Unix时间戳 了解时区 如下所示 使用pytz gt gt gt import datetime as DT gt gt gt import pytz gt gt gt mtl pytz timezo
  • 无法使用 Samsung AVPlay API 更改播放头位置

    我有一个 typescript javascript Tizen Web 应用程序运行在三星智能电视模拟器 v5 0 https developer samsung com tv develop api references samsung
  • TypeScript 中抽象类的抽象构造函数

    如何为抽象类创建抽象构造函数 例如 如果我有这个抽象类 export abstract class Foo
  • 比较图像相似度的简单快速方法

    我需要一种简单快速的方法来比较两个图像的相似性 IE 如果它们包含完全相同的内容 但可能有一些稍微不同的背景 并且可能会移动 调整几个像素 我想获得一个高值 更具体地说 如果这很重要 一张图片是一个图标 另一张图片是屏幕截图的一个子区域 我
  • 在javamail中设置“mail.strictly_mime.parm_folding”

    我确实使用 javamail 发送带有长文件名附件的邮件 javamail 根据最新的 RFC 进行操作 并将文件名跨越邮件标头的两行 如下例所示 Part 0 978693914 1433356404377 Content Disposi
  • 为什么我的数组中的某些值未定义

    我在 php 中有一个 for 循环 它在我的页面上添加了许多复选框 如下所示
  • 如何从 v-text 字段或 v-input 字段中删除下划线

    我尝试从 Vuetify 中的 v input v text 或 v autocomplete 字段中删除下划线 但我找不到如何 有没有办法从 Vuetify 中的 v input v text 或 v autocomplete 字段中删除
  • jQuery UI 自动完成在输入字段中显示值而不是标签

    jQuery UI 自动完成的一个潜在的简单问题困扰着我 我的来源是 var ac label One Thing value One Thing label Two Thing value Two Thing 我正在调用小部件 funct
  • 如何创建通用数组? [复制]

    这个问题在这里已经有答案了 我不明白泛型和数组之间的联系 我可以使用泛型类型创建数组引用 private E elements GOOD 但无法创建具有泛型类型的数组对象 elements new E 10 ERROR 但它有效 eleme
  • 如何使用 getattr 从模型中获取外键值

    我有一个模型Project我通过以下指令获得了它的属性 attr getattr project id None project是实例 id是场并且None是默认的返回类型 我的问题是 如果我想用这个来获取外键怎么办 获取客户姓名 proj
  • NPM:运行 npm 时找不到 npm-cli.js

    通常我可以使用安装库npm但是今天安装 yeoman 时遇到了这个错误 请帮忙找出根本原因 D Works phonegap ionic todo gt npm install g yo module js 340 throw err Er
  • SELECT 上触发触发器

    我是触发器新手 在从 sql server 中的数据库表中选择值时需要触发触发器 我尝试过在插入 更新和删除时触发触发器 选择值时有什么方法可以触发触发器吗 我知道只有两种方法可以做到这一点 而且都不是触发器 您可以使用存储过程来运行查询并
  • Angular 4 - 在下拉列表中选择默认值 [Reactive Forms]

    在 Angular 4 中 我在 json 配置文件中定义了以下配置 countries USA UK Canada default UK 我需要使用反应性模块在下拉列表中显示这些 这是执行此操作的代码 ts countries strin
  • 温斯顿:了解日志记录级别

    阅读和摆弄温斯顿 我很困惑为什么日志记录级别按原样排序 以及为什么传输以它们的方式运行 好吧 至少是控制台 如果有人能够 甚至可能彻底 用真实的用例示例解释为什么使用 Winston 进行日志记录会以这种方式工作 我将不胜感激 例如 我像这