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/直接运行)和日志存储位置(文件/系统日志)选择合适的方式。