阅读量:9
Linux环境下查看Node.js日志的常用方法
1. 直接查看日志文件
若Node.js应用将日志输出到文件(如通过fs模块、winston等库配置),可使用以下命令查看:
tail命令:实时追踪日志文件末尾的新增内容,适用于监控实时日志(如线上应用运行状态)。按tail -f /path/to/your/nodejs/app.logCtrl+C退出实时监控。less命令:分屏浏览日志文件,支持上下翻页(空格键向下翻页,b键向上翻页),适合查看历史日志。
输入less /path/to/your/nodejs/app.log/keyword可搜索关键词(如/error查找错误日志),按q退出。cat命令:一次性输出整个日志文件内容(适用于小文件,大文件会刷屏)。cat /path/to/your/nodejs/app.log
2. 过滤与搜索日志
若需从大量日志中提取特定信息,可结合grep命令筛选:
- 过滤关键词:仅显示包含指定关键词(如
error、timeout)的日志行。grep 'error' /path/to/your/nodejs/app.log - 实时过滤:结合
tail -f实现实时监控并过滤。tail -f /path/to/your/nodejs/app.log | grep 'keyword' - 忽略大小写:使用
-i参数忽略关键词的大小写(如Error、ERROR均匹配)。grep -i 'error' /path/to/your/nodejs/app.log
3. 使用进程管理器(如PM2)
若应用通过PM2启动(推荐生产环境使用),PM2内置了强大的日志管理功能:
- 查看实时日志:
可指定应用名称(如pm2 logspm2 logs my-app)查看特定应用的日志。 - 查看错误日志:
pm2 logs --err - 保存日志到文件:
日志默认存储在pm2 logs > /path/to/save/logs.txt~/.pm2/logs/目录下(文件名为应用名-out.log和应用名-err.log)。
4. 查看系统日志(Systemd服务)
若Node.js应用作为Systemd服务运行(如通过systemctl启动),可使用journalctl命令查看系统级日志:
- 查看服务日志:
替换journalctl -u your-nodejs-service-nameyour-nodejs-service-name为你的服务名称(如my-nodejs-app)。 - 实时监控服务日志:
journalctl -u your-nodejs-service-name -f - 过滤关键词:
journalctl -u your-nodejs-service-name | grep 'keyword'
5. 使用第三方日志工具
对于复杂的日志管理需求(如集中存储、可视化、分析),可使用专业工具:
- ELK Stack(Elasticsearch+Logstash+Kibana):
通过Logstash收集日志,Elasticsearch存储,Kibana可视化分析(适合大规模应用)。 - Logstash/Fluentd:
日志收集与转发工具,可将日志传输到远程存储(如Elasticsearch、S3)。 - Glances:
跨平台系统监控工具,支持实时查看日志文件(glances -l /path/to/logfile.log)。
以上方法覆盖了从简单到复杂的日志查看需求,可根据实际场景选择合适的方式。例如,开发环境可使用tail -f快速查看实时日志,生产环境推荐使用PM2或ELK Stack实现精细化日志管理。