温馨提示×

CentOS下Node.js日志如何查看

小樊
54
2025-09-02 02:58:55
栏目: 编程语言

CentOS下查看Node.js日志的常用方法

1. 通过日志文件直接查看

若Node.js应用启动时将日志重定向到文件(如node app.js > logs/app.log 2>&1 &),可通过以下命令查看:

  • 查看完整日志cat logs/app.log(适合小文件,一次性输出全部内容);
  • 分页查看less logs/app.log(支持上下翻页,按q退出);
  • 实时跟踪最新日志tail -f logs/app.log(动态显示新增内容,按Ctrl+C停止);
  • 搜索特定内容grep 'error' logs/app.log(筛选包含“error”的日志行,可用于快速定位问题)。

2. 使用journalctl查看系统日志

若Node.js作为systemd服务运行(如通过node app.js --name my-nodejs-app启动),可通过journalctl命令查看关联日志:

journalctl -u your-nodejs-service-name -t  # 替换为实际服务名(如my-nodejs-app)
  • -u:指定服务名称;
  • -t:显示日志标签(可选,用于过滤特定类型的日志)。

3. 使用PM2管理工具查看日志

若通过PM2(Node.js进程管理工具)启动应用,可使用PM2内置命令查看日志:

  • 查看所有应用日志pm2 logs
  • 查看指定应用日志pm2 logs your-app-name(替换为实际应用名);
  • 实时跟踪日志pm2 logs --lines 100(显示最近100行并实时更新)。
    PM2会自动将日志保存到~/.pm2/logs/目录(如your-app-name-out.log为标准输出,your-app-name-error.log为错误输出)。

4. 通过代码配置的日志文件查看

若应用使用日志库(如winstonmorgan)配置了日志路径,需检查代码中的日志配置:

  • 示例(winston配置):
    const winston = require('winston');
    const logger = winston.createLogger({
      transports: [
        new winston.transports.File({ filename: '/var/log/myapp/app.log', level: 'info' }) // 日志保存路径
      ]
    });
    
    此时可直接查看/var/log/myapp/app.log文件。

5. 使用lsof命令查找日志文件路径

若应用正在运行,可通过lsof命令查找其打开的日志文件:

# 1. 获取Node.js进程PID
ps aux | grep node
# 2. 查找该进程打开的文件
sudo lsof -p [PID] | grep '\.log'

输出中会显示应用打开的日志文件路径(如/path/to/app.log)。

以上方法覆盖了CentOS下查看Node.js日志的主要场景,可根据应用部署方式(直接运行、systemd服务、PM2管理)和日志配置选择合适的方式。

0