Nodejs 调试生产中的错误

2024-05-18

我有一个在生产环境中运行的 Nodejs 脚本

我不太可能(千分之一)遇到这样的错误:

TypeError: value is out of bounds
    at checkInt (buffer.js:1009:11)
    at Buffer.writeUInt16LE (buffer.js:1067:5)
    at Object.foo.bar (/fake/path/name.js:123:1);
    at Object.foo.bar2 (/fake/path/name2.js:123:1);
    at Object.foo.bar3 (/fake/path/name3.js:123:1);

导致生产服务器崩溃...

太棒了,我有堆栈跟踪!但我想知道每次调用或所有数据的当前数据是什么?

有哪些很棒的工具或代码可用于在生产代码上进行错误记录(及其当前数据)?


我强烈建议使用Winston https://www.npmjs.com/package/winston or Bunyan https://www.npmjs.com/package/bunyan。 npm 包的选择是您的应用程序的决定。

您可以通过以下方式对可用的 npm 软件包进行基准测试stats在 npm 页面中可用。统计数据基本上如下。

  1. 最后一天的下载量
  2. 上周的下载量
  3. 上个月的下载量
  4. 开放问题和开放拉取请求。

最近的下载量较高表明从长远来看,您正在使用的模块得到了很好的支持。所以这很重要。

Winstan 和 Bunyan 都是市场上最好的日志记录 npm 软件包,主要区别在于,Winstan 对于普通日志记录来说确实很棒且灵活。当然,Winstan 提供了大量的日志记录功能。但与班扬相比,要利用这些能力还需要付出一些努力。

而班扬则特别支持“分析日志”。所以基本上 Bunyan 是用于日志处理的。因此,如果您想分析日志、日志文件,强烈建议使用 Bunyan。与 Winstan 相比,使用 Bunyan 调整日志相当容易。

我对班扬和温斯坦进行了彻底的比较。请检查下面的链接,了解 Winstan 和 Bunyan 如何根据范围、用例和记录到 Node 应用程序的必要性来使用。 link : https://docs.google.com/document/d/1pD9PLyxlcHVxxOvserNLO9tAz-QA_Co-xo6cWLhLghc/edit?usp=sharing https://docs.google.com/document/d/1pD9PLyxlcHVxxOvserNLO9tAz-QA_Co-xo6cWLhLghc/edit?usp=sharing

也在生产环境,请确保明智地使用日志记录级别。生产环境中最常用的日志级别是:

  • error
  • info
  • debug
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nodejs 调试生产中的错误 的相关文章

  • Node.js:您什么时候知道异步任务集合何时完成?

    我想深入一个目录 并根据正则表达式检查我在其中看到的每个文件的名称 基本上是通用unix的一个版本find命令 仅用 Node js 编写 我不关心文件的顺序 但我确实想确保获得所有文件 我有以下代码 我认为 它接近我想要的 它需要一个 s
  • 有没有办法在 TypeScript 2+ 中全局添加类型定义?

    我有一堆简单的 ts files 不是项目 即独立的 ts 脚本 他们使用一些 Node js 功能 TypeScript 和节点类型定义通过安装 npm install g typescript npm install g types n
  • 使用 dnode 从服务器向客户端发送消息

    几个月前 我发现了 nowjs 和 dnode 并最终使用了 nowjs 并且https github com Flotype nowclient https github com Flotype nowclient 用于客户端 服务器双向
  • 未处理的拒绝:发送后无法设置标头

    我正在 Dialogflow 中创建一个聊天机器人 当我尝试将数据添加到数据库时 它抛出了 未处理的拒绝 错误 这是我的index js文件 use strict const functions require firebase funct
  • 打印任何类型的数组和列表的通用方法[重复]

    这个问题在这里已经有答案了 每当我调试一段涉及整数 双精度 字符串等数组或列表的代码时 有时我更喜欢打印它们 我为此所做的是为不同类型编写重载的 printArray printList 方法 for e g 我可能有这 3 种方法来打印各
  • CORS 问题从 React 应用程序 > 节点服务器 > 重定向到 Google OAuth2 身份验证发出 AJAX 请求

    大家好 过去两天我一直在绞尽脑汁研究这个问题 但没有运气 这是我在尝试从我的 React 应用程序 localhost 3000 使用 Google Oauth2 Passport 策略进行身份验证时遇到的错误 我正在 localhost
  • react-native-screens:compileDebugKotlin 错误

    失败 构建失败并出现异常 什么地方出了错 任务 react native screens compileDebugKotlin 执行失败 评估任务 react native screens compileDebugKotlin 的属性 fi
  • 类验证器 (Node.js) 在自定义验证中获取另一个属性值

    目前 我有一个非常简单的类验证器文件 其中包含 Nest js 中的 ValidationPipe 如下所示 import IsDateString IsEmail IsOptional IsString Length Max from c
  • 无法在 AWS Lambda 自定义授权方中验证 Twilio 请求

    我使用 NodeJS 构建了一个自定义授权者 lambda 函数 并将其配置为授权 AWS 中的另一个 lambda 函数 这个其他函数是从 HTTP 端点触发的 并且具有我在 Twilio Messaging Service 中配置为 w
  • 使用 Flutter Flavor 运行调试?

    我正在尝试在 Visual Studio 代码上为我的 flutter 应用程序运行调试模式 单击 运行和调试 但是当我这样做时 我面临以下问题 The Xcode project defines schemes release priva
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 内存转储格式类似于 gdb 中的 xxd

    我正在尝试检查一个缓冲区 其中包含二进制格式的消息 但也包含字符串数据 作为示例 我正在使用以下 C 代码 int main void char buf 100 x01 x02 x03 x04String Data xAA xBB xCC
  • 如何使用Nodejs将json数据导出为指定格式的pdf文件?

    我是nodejs的初学者 我正在编写一个程序 将文本数据从 json 文件转换为 pdf 文件 这是我的输入文件 input json Info Company ABC Team JsonNode Number of members 4 T
  • 在 NodeJS 中运行 Conda 命令

    我无法使用以下命令运行 C onda 命令exec与我的 NodeJS 应用程序 var conda path miniconda3 bin conda var cmd conda path init bash conda path act
  • 在 Node.js 中以事务方式写入文件

    我有一个 Node js 应用程序 它将一些配置数据存储在文件中 如果更改某些设置 配置文件将写入磁盘 目前 我正在使用一个简单的fs writeFile 现在我的问题是 当 Node js 在写入文件时崩溃时会发生什么 磁盘上是否有可能存
  • 装饰器中间件模式的 Typescript 类型

    我正在考虑节点中间件 在各种框架中 通常 中间件会向请求或响应对象添加一个属性 然后该属性可供在其之后注册的任何中间件使用 此模型的一个问题是您无法进行有效的打字 为了进行演示 这里有一个此类框架的高度简化的模型 在这种情况下 一切都是同步
  • AWS Lambda - Nodejs 函数不会返回数据

    我是 NodeJS 函数调用的新手 我已经在屏幕上敲了几个小时了 我所有的谷歌搜索都没有帮助 所以我有一个 AWS Lambda 函数 它接收一个带有单个 ID 号的 JSON 对象 该 ID 号将被传递并最终作为 myid 发送到 get
  • 从 puppeteer PDF 中删除分页符?

    我目前正在尝试查看是否有一种方法可以删除我的 puppeteer PDF 中的分页符 因为我当前的 PDF 设置中的一些分页符正在以一种奇怪的方式切断文本 我正在谈论的内容的屏幕截图 我的傀儡代码 app get companyId pdf
  • 使用nodejs的sequelize更新多对多连接表

    我有一个产品表和一个类别表 一个产品可以有多个类别 一个类别可以有多个产品 因此我有一个 ProductsCategories 表来处理多对多连接 在下面的示例中 我尝试将我的一款产品 ID 为 1 与 3 个不同的类别 ID 为 1 2
  • 调用 `app.close()` 时,Nest 找不到 Sequelize 元素

    我们有一个运行 Nest 8 0 8 的 Web 服务器 使用给定的模块设置 Module imports ConfigModule forRoot isGlobal true cache true validate load config

随机推荐