溫馨提示×

如何在Ubuntu查看Node.js日志

小樊
47
2025-10-13 14:02:07
欄目: 編程語言

如何在Ubuntu查看Node.js日志

在Ubuntu系統中,查看Node.js日志的方法主要取決于日志的存儲方式(系統服務日志、自定義文件、第三方工具)。以下是具體步驟:

1. 通過journalctl查看系統服務日志(適用于systemd管理的Node.js服務)

若Node.js應用以systemd服務運行(如通過node app.js --name my-nodejs-app啟動并注冊為服務),可使用journalctl命令查看關聯日志:

journalctl -u your-nodejs-service-name -f
  • -u:指定服務名稱(需替換為實際服務名,可通過systemctl list-units --type=service查詢);
  • -f:實時跟蹤日志輸出(類似tail -f)。
    該命令會顯示服務相關的所有日志(包括標準輸出、錯誤輸出)。

2. 直接查看自定義日志文件(適用于手動重定向或代碼配置的日志)

若啟動時將日志重定向到文件(如node app.js > logs/app.log 2>&1 &),或代碼中通過fs模塊、日志庫(如Winston、Bunyan)配置了日志路徑,可直接操作日志文件:

  • 查看完整日志cat logs/app.log(輸出全部內容);
  • 實時跟蹤新日志tail -f logs/app.log(持續顯示文件末尾新增內容,按Ctrl+C退出);
  • 篩選關鍵詞grep "error" logs/app.log(僅顯示包含“error”的行,可用于快速定位問題)。

3. 使用第三方日志管理工具(適用于生產環境規?;罩竟芾恚?/strong>

對于復雜應用,建議使用專業日志工具集中管理日志(如Logstash、Fluentd、Graylog),這些工具可實現日志收集、過濾、存儲、可視化(如通過Kibana展示)。需提前配置工具與Node.js應用的集成(如通過Winston的transports配置將日志發送至工具)。

4. 通過代碼內置日志庫查看(適用于自定義日志格式或傳輸需求)

若應用使用console.log、winston、bunyan等庫記錄日志,日志會輸出到配置的目標(控制臺、文件、遠程服務器)。例如:

  • 使用Winston:配置transports將日志寫入文件和控制臺:
    const winston = require('winston');
    const logger = winston.createLogger({
      level: 'info',
      format: winston.format.json(),
      transports: [
        new winston.transports.File({ filename: 'logs/error.log', level: 'error' }),
        new winston.transports.File({ filename: 'logs/combined.log' }),
        new winston.transports.Console(), // 輸出到控制臺
      ],
    });
    logger.info('This is an info log.'); // 會輸出到combined.log和控制臺
    logger.error('This is an error log.'); // 會輸出到error.log和combined.log
    
    日志文件默認存儲在項目根目錄的logs文件夾下(需提前創建)。

注意事項

  • 若未明確日志存儲位置,優先檢查應用配置(如package.json中的scripts、日志庫配置文件)或系統服務定義(如/etc/systemd/system/your-service.service);
  • 生產環境中,建議將日志寫入專用目錄(如/var/log/nodejs/)并通過logrotate工具定期輪轉,避免日志文件過大。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女