位置:首页 > JavaScript > Ubuntu系统高效查看Node.js日志的方法与技巧

Ubuntu系统高效查看Node.js日志的方法与技巧

时间:2026-08-21  |  作者:实验室老王  |  阅读:0

Node.js应用跑起来之后,日志才是真正的前线情报。无论是排查问题,还是监控状态,搞清楚怎么高效查看日志,都能省下不少折腾时间。

下面整理了几种常见场景下的实用方案。内容覆盖从直接运行,到进程管理、系统服务、结构化输出,再到大规模集中管理,基本能满足日常开发运维需求。

使用内置命令实时查看日志

如果你的Node.js应用是直接运行的,没有通过进程管理工具,最直接的办法就是用tail -f实时追踪日志文件新增内容。

比如日志文件路径是/var/log/nodejs/app.log,执行tail -f /var/log/nodejs/app.log,终端就会持续刷新最新日志。按Ctrl+C即可停止。

如果只想筛选包含特定关键字的日志,比如错误信息,可以结合grep使用:tail -f /var/log/nodejs/app.log | grep "error"。这样终端只显示带“error”的行,更直观。

如何在Ubuntu上高效查看Node.js日志

通过PM2管理日志

推荐生产环境使用PM2。PM2是Node.js生态里最常用的进程管理工具,内置日志管理功能,用起来很顺手。

  • 全局安装:sudo npm install pm2 -g
  • 启动应用:pm2 start app.js
  • 查看所有应用实时日志:pm2 logs
  • 查看指定应用日志:pm2 logs

其中,app.js替换成你的入口文件即可。

PM2还支持日志轮换,能避免单个日志文件无限膨胀。通过pm2 set pm2:log_rotate true开启,默认保留7天日志,通常已经够用。

利用系统日志工具

Systemd服务场景

当Node.js应用通过Systemd以服务形式运行时,比如my-nodejs-app.service,可以使用journalctl查看系统日志。

  • 实时查看服务日志:sudo journalctl -u my-nodejs-app.service -f
  • 仅查看错误级别日志:sudo journalctl -u my-nodejs-app.service -f --priority=err

其中,-u用于指定服务名称,-f表示实时跟踪。加上--priority=err后,可以直接过滤错误日志。

结构化日志库提升日志可读性与分析性

如果后续需要对日志进行集中管理和分析,强烈建议使用结构化日志库,比如Winston、Bunyan。

以Winston为例,先安装:npm install winston,然后配置一个logger.js文件:

const winston = require('winston');
const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(), // 结构化输出(JSON格式)
  transports: [
    new winston.transports.Console(),
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: 'combined.log' })
  ]
});
module.exports = logger;

在应用中这样使用:const logger = require('./logger'); logger.info('Server started on port 3000');。

结构化日志,比如JSON格式,后续用ELK、Graylog等工具分析会非常方便。

第三方集中式日志管理

大规模应用推荐

对于分布式或大规模应用,集中式日志管理是标配。它可以实现统一收集、存储和可视化。

常见方案包括:

  • ELK Stack(Elasticsearch+Logstash+Kibana):Elasticsearch负责存储,Logstash负责收集处理,Kibana负责可视化分析。需要配置Winston将日志发送到Logstash(可以用winston-elasticsearch传输器)。
  • Graylog:开源日志管理工具,支持收集、搜索、告警。通过GELF格式将Node.js日志发送到Graylog(使用winston-graylog2传输器)。
  • LogDNA:云原生日志管理工具,简化收集流程,支持实时搜索、分析和告警。

高效筛选与分析技巧

除了工具本身,一些日常技巧也能明显提升效率:

  • 关键词筛选:用grep快速查找特定日志,比如grep "user_login" app.log。
  • 多文件监控:用multitail同时监控多个日志文件。安装:sudo apt-get install multitail;使用:multitail /var/log/nodejs/*.log。
  • 日志轮换:避免日志文件过大,可以使用logrotate工具。配置文件在/etc/logrotate.d/nodejs,可以按大小或时间分割日志。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多