阅读量:2
一、日志定位与查看
-
常见日志路径
- 应用程序日志:通常在项目目录下的
logs文件夹或配置文件指定的路径(如/var/log/myapp/)。 - 系统日志:通过
journalctl查看(如journalctl -u your-node-service)。 - 实时日志:用
tail -f app.log或pm2 logs(若用 PM2 管理进程)。
- 应用程序日志:通常在项目目录下的
-
命令行工具辅助
grep 'Error' app.log:过滤错误关键字。less app.log:分页查看日志。
二、错误类型与分析
| 错误类型 | 典型示例 | 解决方法 |
|---|---|---|
| 语法错误(SyntaxError) | Unexpected token } |
检查代码语法,修复缺失括号、引号等问题。 |
| 引用错误(ReferenceError) | variable is not defined |
确保变量已定义,检查拼写错误。 |
| 类型错误(TypeError) | Cannot read property 'xxx' of undefined |
检查对象是否初始化,使用可选链(?.)避免未定义访问。 |
| 未处理 Promise 拒绝 | UnhandledPromiseRejectionWarning |
为 Promise 添加 .catch(),或用 process.on('unhandledRejection') 全局捕获。 |
| 内存不足错误 | JavaScript heap out of memory |
优化代码减少内存占用,或通过 --max-old-space-size 调整内存限制。 |
| 端口占用错误 | Error: listen EADDRINUSE :::3000 |
用 lsof -i :3000 找到占用进程并终止,或修改应用端口。 |
三、工具与最佳实践
-
日志管理工具
- PM2:支持日志轮转、实时查看及进程管理(
pm2 install pm2-logrotate)。 - Winston/Log4js:自定义日志级别、输出格式及存储目标(如文件、数据库)。
- PM2:支持日志轮转、实时查看及进程管理(
-
系统级工具
logrotate:自动管理日志文件轮转,避免占用过多磁盘空间。dmesg:查看内核日志,排查硬件或系统级问题。
-
调试技巧
- 用
node inspect app.js启动调试模式,配合 Chrome DevTools 逐步排查代码。 - 在代码中添加
console.error或使用日志库记录关键变量值,辅助定位问题。
- 用
四、预防措施
- 全局错误捕获:通过
process.on('uncaughtException')捕获未处理的同步异常。 - 日志分级:区分
error、warn、info级别,便于快速筛选关键信息。 - 定期清理日志:设置日志保留策略,避免日志文件过大影响系统性能。
参考来源:
以上就是关于“Ubuntu Node.js如何进行错误日志分析”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm