如果Node.js应用是通过node app.js直接在终端运行的,日志会默认输出到控制台。若需实时跟踪最新日志,可使用tail -f命令:
# 假设日志输出到终端,直接查看(需保持终端打开)
node app.js
# 若已将日志重定向到文件(如app.log),使用tail实时查看
tail -f app.log
按Ctrl+C可停止实时查看。
若应用将日志写入文件(如使用fs模块、winston、bunyan等库),可通过以下命令查看:
cat app.log(显示文件全部内容);tail -f app.log(持续显示文件末尾新增内容);grep "error" app.log(仅显示包含“error”的行,区分大小写)。若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启动服务。
若应用通过PM2进程管理器运行(常用命令:pm2 start app.js),可使用PM2自带的日志命令:
pm2 logs;pm2 logs your-app-name(替换your-app-name为PM2中的应用名称);pm2 logs -f。~/.pm2/logs/目录,默认文件名为app-name-out.log(标准输出)和app-name-error.log(错误输出)。logs/app.log、./app.log等);winston、bunyan等日志库,支持日志分级(info/error)、文件轮转(防止文件过大)和远程传输;grep、awk等命令进一步筛选关键信息(如grep "ERROR" app.log | tail -n 50查看最近的50条错误日志)。