ubuntu

Ubuntu Node.js如何进行错误日志分析

小樊
45
2025-08-13 20:06:36
栏目: 编程语言

一、日志定位与查看

  1. 常见日志路径

    • 应用程序日志:通常在项目目录下的 logs 文件夹或配置文件指定的路径(如 /var/log/myapp/)。
    • 系统日志:通过 journalctl 查看(如 journalctl -u your-node-service)。
    • 实时日志:用 tail -f app.logpm2 logs(若用 PM2 管理进程)。
  2. 命令行工具辅助

    • 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 找到占用进程并终止,或修改应用端口。

三、工具与最佳实践

  1. 日志管理工具

    • PM2:支持日志轮转、实时查看及进程管理(pm2 install pm2-logrotate)。
    • Winston/Log4js:自定义日志级别、输出格式及存储目标(如文件、数据库)。
  2. 系统级工具

    • logrotate:自动管理日志文件轮转,避免占用过多磁盘空间。
    • dmesg:查看内核日志,排查硬件或系统级问题。
  3. 调试技巧

    • node inspect app.js 启动调试模式,配合 Chrome DevTools 逐步排查代码。
    • 在代码中添加 console.error 或使用日志库记录关键变量值,辅助定位问题。

四、预防措施

参考来源:

0
看了该问题的人还看了