溫馨提示×

Ubuntu上Node.js日志管理技巧

小樊
52
2025-08-21 21:37:24
欄目: 編程語言

以下是Ubuntu上Node.js日志管理的實用技巧:

  1. 選擇日志庫

    • 使用winston、pino等庫,支持日志分級、格式化及輪轉,如winston-daily-rotate-file插件可按日期切割日志。
    • 示例(winston配置):
      const winston = require('winston');
      const logger = winston.createLogger({
        transports: [
          new winston.transports.File({ filename: 'error.log', level: 'error' }),
          new winston.transports.Console({ format: winston.format.simple() })
        ]
      });
      
  2. 日志輪轉與清理

    • 工具法:用logrotate配置自動切割、壓縮舊日志,保留7-30天記錄,避免磁盤占滿。
      • 配置示例(/etc/logrotate.d/nodejs):
        /var/log/nodejs/*.log {
          daily
          rotate 7
          compress
          missingok
          create 0640 root adm
        }
        
    • 庫內置法:通過winston-daily-rotate-filepm2內置輪轉功能,按文件大小或時間切割。
  3. 集中化日志管理

    • 部署ELK Stack(Elasticsearch+Logstash+Kibana)或Graylog,實現日志的集中存儲、分析與可視化。
  4. 性能優化

    • 生產環境使用異步日志記錄(如winston的異步傳輸),避免阻塞主線程。
    • 敏感信息脫敏,通過日志庫過濾或替換敏感字段。
  5. 進程管理輔助

    • pm2管理應用時,啟用內置日志輪轉并配置保留策略:
      pm2 set pm2-logrotate:max_size 10M  # 單個文件最大10MB
      pm2 set pm2-logrotate:retain 7     # 保留7個文件
      
  6. 日志級別控制

    • 根據環境(開發/生產)動態調整日志級別,生產環境建議設為warnerror,減少冗余日志。

工具推薦:優先使用logrotate(系統級)或pm2(進程級)管理日志輪轉,搭配winston/pino實現結構化日志記錄。

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