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

systemctl list-units --type=service | grep node,找到目标服务(如my-nodejs-app.service);② 查看完整日志:journalctl -u your-nodejs-service-name(替换为实际服务名);③ 实时跟踪日志:journalctl -u your-nodejs-service-name -f(持续输出最新日志);④ 筛选错误日志:journalctl -u your-nodejs-service-name -t error(仅显示错误级别日志)。该方法适用于通过systemd管理的Node.js服务,日志整合在系统日志中,便于统一管理。若应用代码中配置了日志输出路径(如使用winston、morgan等日志库,或在启动时重定向输出),可直接查看指定文件。
logs文件夹(如logs/app.log、logs/error.log),或代码中明确指定的路径(如node app.js > logs/app.log 2>&1 &中的logs/app.log)。cat /path/to/logfile(如cat logs/error.log);less /path/to/logfile(按q退出);tail -f /path/to/logfile(动态显示新增日志);grep 'error' /path/to/logfile(提取包含“error”的行)。该方法适用于自行配置日志路径的应用,灵活性高,需提前确认日志文件位置。PM2是Node.js常用的进程管理工具,可自动捕获并管理应用日志(包括错误日志)。
pm2 list(找到目标应用的id或name);② 查看特定应用日志:pm2 logs app_name_or_id(默认显示out.log和error.log);③ 仅查看错误日志:pm2 logs app_name_or_id --err(过滤出错误日志)。ecosystem.config.js配置文件修改日志输出位置,例如:module.exports = {apps: [{name: 'my_node_app',script: 'app.js',error_file: '/var/log/nodejs/my_app-error.log', // 错误日志路径out_file: '/var/log/nodejs/my_app-out.log', // 输出日志路径log_level: 'error'// 仅记录错误级别日志}]};配置后运行pm2 start ecosystem.config.js即可生效。PM2的日志管理功能强大,支持日志轮转、远程传输等,适合生产环境。若无法确定日志位置,可通过端口或进程信息间接获取:
netstat -tuln | grep node(如0.0.0.0:3000);② 根据端口找到进程ID:lsof -i :3000(输出中的PID列);③ 查看进程详情:ps -ef | grep PID(确认进程的启动命令,是否包含日志重定向路径)。该方法适用于未明确日志路径的情况,通过进程信息推断日志输出位置。以上方法覆盖了CentOS环境下查看Node.js错误日志的主要场景,可根据应用部署方式(systemd/PM2/直接运行)和日志配置选择合适的方式。