温馨提示×

Node.js日志Ubuntu中如何查看

小樊
39
2025-10-26 09:20:49
栏目: 编程语言

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

1. 直接查看控制台输出(适用于直接运行的应用)

如果Node.js应用是通过node app.js直接在终端运行的,日志会默认输出到控制台。若需实时跟踪最新日志,可使用tail -f命令:

# 假设日志输出到终端,直接查看(需保持终端打开)
node app.js

# 若已将日志重定向到文件(如app.log),使用tail实时查看
tail -f app.log

Ctrl+C可停止实时查看。

2. 查看日志文件(手动写入或库配置)

若应用将日志写入文件(如使用fs模块、winstonbunyan等库),可通过以下命令查看:

  • 查看完整日志cat app.log(显示文件全部内容);
  • 实时跟踪最新日志tail -f app.log(持续显示文件末尾新增内容);
  • 筛选关键字日志grep "error" app.log(仅显示包含“error”的行,区分大小写)。

3. 通过systemd查看服务日志(推荐用于生产环境)

若Node.js应用以systemd服务运行(需提前创建服务文件),可通过journalctl命令查看系统日志:

  • 查看服务状态systemctl status my-nodejs-service(确认服务名称,替换my-nodejs-service为实际名称);
  • 查看服务日志journalctl -u my-nodejs-service(显示该服务的所有日志);
  • 实时跟踪日志journalctl -u my-nodejs-service -f(持续显示最新日志)。
    示例服务文件(/etc/systemd/system/my-nodejs-service.service)内容:
[Unit]
Description=My Node.js Application
After=network.target

[Service]
ExecStart=/usr/bin/node /path/to/your/app.js
WorkingDirectory=/path/to/your/app
User=your-username
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=my-nodejs-service

[Install]
WantedBy=multi-user.target

创建后需执行sudo systemctl daemon-reload加载配置,再用sudo systemctl start my-nodejs-service启动服务。

4. 使用进程管理器查看日志(如PM2)

若应用通过PM2进程管理器运行(常用命令:pm2 start app.js),可使用PM2自带的日志命令:

  • 查看所有应用日志pm2 logs
  • 查看指定应用日志pm2 logs your-app-name(替换your-app-name为PM2中的应用名称);
  • 实时跟踪日志pm2 logs -f
    PM2会自动保存日志到~/.pm2/logs/目录,默认文件名为app-name-out.log(标准输出)和app-name-error.log(错误输出)。

注意事项

  • 日志文件路径需根据应用配置调整(如logs/app.log./app.log等);
  • 生产环境中建议使用winstonbunyan等日志库,支持日志分级(info/error)、文件轮转(防止文件过大)和远程传输;
  • 若日志量较大,可通过grepawk等命令进一步筛选关键信息(如grep "ERROR" app.log | tail -n 50查看最近的50条错误日志)。

0