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。若应用将日志输出到指定文件(如logs/app.log、app.log),可使用以下命令:
cat logs/app.log(一次性输出全部内容,适合小文件)。tail -f logs/app.log(持续显示文件末尾新增内容,按Ctrl+C退出,适合生产环境监控)。less logs/app.log(支持上下翻页、搜索,按q退出)。grep命令,grep "error" logs/app.log或cat logs/app.log | grep "error"(仅显示包含关键字的行)。pm2查看日志(若应用由pm2管理)若通过pm2(Node.js进程管理工具)启动应用,可直接用pm2 logs命令查看:
pm2 logs(显示所有由pm2管理的应用日志)。your-app-name或id(通过pm2 list获取),如pm2 logs your-app-name或pm2 logs id。pm2 logs默认实时更新,无需额外参数。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行,帮助定位问题上下文)。若应用使用winston、bunyan等日志库,日志通常按级别(error/warn/info/debug)分类存储到不同文件(如error.log、combined.log)。
tail -f logs/error.log。level: 'debug'),可输出更详细的调试信息,便于排查问题。以上方法覆盖了Ubuntu环境下查询Node.js日志的主要场景,可根据应用部署方式(systemd/pm2/直接运行)和日志存储位置(文件/系统日志)选择合适的方式。