问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何让Node.js正确地日志

发布网友 发布时间:2022-04-22 08:03

我来回答

2个回答

热心网友 时间:2022-04-12 12:49

为了完成这点,你会需要使用一个最流行的开发包,叫做 winston. Winston 是一个 Node.js 的多通道异步传输日志库。

你可以通过安装 winston 的方式,添加它到你的项目中:

一旦你安装之后,你可以这样添加 winston 到你的项目:

上面的代码片段会推送接下来的这行信息到 stdout :

如同你所看到的那样,我们传递了 info 字符串到 winston ,从而告诉 winston 这个将要日志的事件有一个日志级别与之关联,也就是 info。默认情况下, winston 附带了接下来的几种日志级别 (也可以添加自定义的级别) :

你可以通过接下来的一行设置日志的级别:

在 RisingStack ,我们通常利用一个叫 LOG_LEVEL 的环境变量来配置。这样的话,我们就可以动态改变哪些内容应该被日志记录:

当你的日志级别是 silly 时,你应该尽可能的多记录所有的日志。尽管如此,你还是需要遵守一个经验法则:绝对不要记录凭证,密码以及任何敏感的信息。

“绝对不要记录凭证,密码以及任何敏感的信息。” via @RisingStack #nodejs #logging #security

点击直达 TWEET

通常来说,会有至少一个以上的用户访问日志,所以,日志事件里面包含凭证信息会增加额外的风险。

当你 开始使用微服务 , 从日志角度来看,最大的挑战就是分布式追踪。

在一个分布式的架构中,错误检测会令人沮丧,因为由于系统的瑕疵会导致大量的警报信息涌现。分布式追踪的目的就是为了消除这个问题,它可以提供更多的事务和错误的视角,而普通的日志文件并没有能力做到这些。

为了做到这点,你不得不使用一个所谓的相关标识符——并且把它传递给所有的参与事务操作的服务。然后,如果每行日志都标注了这个 ID ,你就可以搜索这些事件了。

为了生成一个唯一的 ID ,你可以这样使用 uuid 模块:

这个 ID 不得不在函数调用中传递,并且它也不得不被发送到下游的服务。 如同你可以想象到的,这不是个特别值当的任务。

这里讲到追踪,我们的 Node.js / 微服务监控 解决方案如下图所示。追踪相关的 ID 到请求的容器,并且可视化了一个简单的树状图的数据流。你不会需要去搜索日志,因为它会直接以一种容易理解的方式去展示你的事务:

Node.js distributed tracing with trace by risingstack

根据这种方式, 你可以直接看到你的微服务和持续产生的 issue 之间的依赖关系

如果你实现了我们刚刚讨论的这些方法和工具,Node.js 的日志记录将不再是一件难事。

如何让Node.js正确地日志

当你的日志级别是 silly 时,你应该尽可能的多记录所有的日志。尽管如此,你还是需要遵守一个经验法则:绝对不要记录凭证,密码以及任何敏感的信息。“绝对不要记录凭证,密码以及任何敏感的信息。” via @RisingStack #nodejs #logging #security 点击直达 TWEET 通常来说,会有至少一个以上的用户访问日...

Node.js日志之winston使用指南

控制日志发送的位置:将日志同步保存到多个目的地(如Elasticsearch、MongoDB、Postgres等)。自定义日志格式:带有时间戳、颜色日志级别、JSON格式等前缀。winston实践实践代码将在项目pretender-service中增加日志功能,安装依赖:npminstallwinston--save接下来需要初始化logger,由于项目中已经存在一个logger.js文...

nodejs npm -v报错怎么处理?

解决方法是修改npm命令,将`--global`或`--local`替换为`--location=global`。例如,如果在命令中使用了`--global`,将其替换为`--location=global`即可。确保在使用npm命令时,根据提示正确修改配置选项,可以避免出现上述错误,保证npm命令的正常执行。

PM2实时查看Node.js项目的输出日志!

清理日志文件或设定日志文件的保留策略,比如定期清除过期日志,可以防止磁盘空间过度占用。部分高级功能,如监控日志文件大小和自动滚动,可能需要额外的第三方插件支持,查阅相关文档以获取具体实现方法。通过以上步骤,你可以灵活地管理PM2管理下的Node.js项目日志,确保项目的稳定运行和高效维护。

Node.js使用笔记

通过添加n模块来管理Node.js版本。操作步骤包括:清除npm缓存、安装n模块,使用n模块安装最新稳定版本及指定版本。在Linux系统中,借助n模块实现Node.js版本管理,通过交互式操作管理版本。若使用express框架,配置静态文件路径变得简便,将目录作为参数传递给express.static中间件,允许访问public目录下的静态资源...

Node.js 应用故障排查手册 —— Node.js 性能平台使用指南

首先,配置合适的告警。线上应用的告警是一种保护机制,可自我发现并解决问题。部署项目后,开发者需配置合适的告警,包括错误日志、Node.js 进程 CPU/Memory 分析、核心转储和磁盘分析等。平台已预设告警策略,只需选择即可完成配置。其次,按照告警类型进行分析。当收到告警短信时,可按照策略类型进行对应...

七爪源码:像专业人士一样在 Node.js 中处理错误

优雅地重启应用,以避免出现不可预料的问题。使用错误中间件集中处理错误,遵循单一责任原则,分离关注点。最后,通过实践,你将能更熟练地处理 Node.js 中的错误,构建更稳定、更安全的应用程序。不断学习和实践,你的编程技能将得到显著提升。愿你在编程之旅中取得更多成就。

如何提高nodejs程序的稳定性,健壮性

1)保持良好的代码结构:我们知道node是单线程,非阻塞io,默认就是异步,通过回调的方式处理后面的流程,如果嵌套的层次太多了,势必会引起代码逻辑结构的混乱,也不利于维护和升级,可以采用async这个异步流程控制模块,来理清我们的代码逻辑。2)使用 process.on('uncaughtException', function(err){...}...

新手入门级 | nodejs调试

1. 起步:安装Node.js和VSCode 首先,从网上找到教程安装Node.js 接着,安装VSCode作为你的开发环境 2. 编写与调试基础代码 在Node.js安装路径下的app文件夹中编写js代码,如创建一个监听33456端口并处理file参数的简单服务 遇到问题:VSCode运行时报错找不到'express'模块 解决方法:在项目...

node.js有没有自动记录bug的东西

可以使用uncaughtException来全局捕获未捕获的Error,同时你还可以将此函数的调用栈打印出来 使用 try/catch 使用node-forever 提供了守护的功能和LOG日志记录功能。

如何让aotojs运行加密的 js中如何让span移动 nodejs日志 js一个四位数如何让他到这输出 js打日志 js生成日志 js日志输出 js 日志组件 js输出不了日志信息
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...90千瓦星角起动.60千瓦小容量电机和照明.请问用多大的铝芯线合适... ...星、三角起动,需截面多大的主线和电机负荷线,最好有计公式 梦见有人不断说我是魂古命的人 手相有田字纹代表什么,会越来越富的女人手相 ...旁边有活水流出!同时还梦见一个道士给看手相说过一阵运气就会好,今... 王者荣耀新英雄影如何获得 王者新英雄影怎么获得 说话中气不足锻炼方法 ...里面的油,可以用吸油管子吸出来吗?小车,凯美瑞。不知道有防盗网吗... qq密码忘记我输入现在的qq密码为什么出现以前的qq号呢我想 电销车险与4s店买车险的区别 车保险。电销和传统,有区别吗 平安车险,电话销售和实体店销售的有什么区别 车险电销和面销的区别是? 电话车险和实体店车险有什么区别? 车险电话投保和营业厅投保有什么不同? 联想笔记本电脑光标不能动了,用鼠标就可以,请问怎... 联想笔记本电脑鼠标,插上灯亮,光标不动,电脑插... 笔记本键盘左右键【方向键】无法控制光标移动 笔记本电脑usb鼠标无法移动 笔记本电脑的USB鼠标插上亮,但是光标不能动 联想笔记本电脑开机后触摸鼠标按了后光标不动,咋... 苹果11有home键吗 联想笔记本电脑鼠标可以点击,不能移动。这是怎么了? 笔记本电脑不显示光标无法控制怎么办 thinkpad E40左ctrl键按下后变成固定住光标,也就是... 联想f41笔记本电脑的bios设置光标不能移到下面来,... 联想笔记本光标突然不动了 笔记本触摸板无法移动鼠标的光标也无法点击了 笔记本电脑鼠标光标不动了怎么办联想 电话车险 门店车险区别 如何查看node js 的log 车险和电销的区别 好的服务器端 Node.js 日志方案应该考虑和解决哪些... 车险柜台和电销区别 保险走电销与走柜台的区别 nodejs怎么监控内存和cpu使用情况 车险电销保单与柜台保单的区别 如何提高NodeJS程序的稳定性 电话车险与柜台车险有什么区别 在node.js里直接用console.log第二个为啥是undefined 车险直销和电销的区别 买车险走柜面和电销的区别 nodejs 中使用什么替代console.log 平安车险,电话销售和实体店销售的保单有什么区别? 车险电销和传统销售有什么区别呢?买那种比较好? Node.js可以在网页中使用吗 如何分析 Node.js 中的内存泄漏 平安电销车险和柜台买的车险服务有区别吗 刚学习nodejs,请高手帮助解答