温馨提示×

Node.js日志Ubuntu中如何查询

小樊
46
2025-10-07 10:06:45
栏目: 编程语言

在Ubuntu中查询Node.js日志的常用方法

1. 使用journalctl查看系统日志(适用于systemd管理的服务)

若Node.js应用以systemd服务形式运行(如通过my-nodejs-app.service启动),可通过journalctl命令查看关联日志。

  • 查看指定服务的日志:替换your-nodejs-service-name为实际服务名,执行journalctl -u your-nodejs-service-name
  • 实时跟踪日志更新:添加-f参数,如journalctl -u your-nodejs-service-name -f,可实时查看最新日志(类似tail -f)。
  • 筛选特定时间范围的日志:例如查看今日日志,可添加--since today,如journalctl -u your-nodejs-service-name --since today

2. 直接查看日志文件(手动或自动写入的文件)

若应用将日志输出到指定文件(如logs/app.logapp.log),可使用以下命令:

  • 查看完整日志内容cat logs/app.log(一次性输出全部内容,适合小文件)。
  • 实时跟踪最新日志tail -f logs/app.log(持续显示文件末尾新增内容,按Ctrl+C退出,适合生产环境监控)。
  • 分页查看日志less logs/app.log(支持上下翻页、搜索,按q退出)。
  • 筛选特定关键字:如查找“error”日志,可组合grep命令,grep "error" logs/app.logcat logs/app.log | grep "error"(仅显示包含关键字的行)。

3. 使用pm2查看日志(若应用由pm2管理)

若通过pm2(Node.js进程管理工具)启动应用,可直接用pm2 logs命令查看:

  • 查看所有应用的日志pm2 logs(显示所有由pm2管理的应用日志)。
  • 查看特定应用的日志:替换your-app-nameid(通过pm2 list获取),如pm2 logs your-app-namepm2 logs id
  • 实时跟踪日志pm2 logs默认实时更新,无需额外参数。

4. 结合grep筛选关键日志

无论日志存储在文件还是系统日志中,均可使用grep快速定位关键信息:

  • 筛选错误日志grep "ERROR" logs/app.log(区分大小写)。
  • 忽略大小写筛选grep -i "error" logs/app.log(匹配“error”“ERROR”等)。
  • 显示匹配行及上下文grep -A 3 -B 2 "error" logs/app.log(显示匹配行及后3行、前2行,帮助定位问题上下文)。

5. 自定义日志库的高级查询(如winston)

若应用使用winstonbunyan等日志库,日志通常按级别(error/warn/info/debug)分类存储到不同文件(如error.logcombined.log)。

  • 查看错误日志:直接访问对应的错误日志文件,如tail -f logs/error.log
  • 调整日志级别:修改日志库配置(如winston的level: 'debug'),可输出更详细的调试信息,便于排查问题。

以上方法覆盖了Ubuntu环境下查询Node.js日志的主要场景,可根据应用部署方式(systemd/pm2/直接运行)和日志存储位置(文件/系统日志)选择合适的方式。

0