溫馨提示×

Ubuntu Node.js日志配置技巧

小樊
44
2025-09-14 04:48:32
欄目: 編程語言

以下是Ubuntu下Node.js日志配置的核心技巧,涵蓋庫選擇、級別控制、輪轉管理及工具集成:

一、選擇高效日志庫

  • Winston:支持多傳輸(文件、控制臺、遠程)、格式化靈活,適合復雜場景。
  • Pino:高性能,JSON格式輸出,適合對速度要求高的應用。
  • Bunyan:結構化日志,內置JSON格式,便于分析。

二、配置日志級別

  • 環境變量控制:通過process.env.LOG_LEVEL動態設置,如process.env.LOG_LEVEL='debug'。
  • 代碼中直接設置:在日志庫初始化時指定,如winston.createLogger({ level: 'info' })。

三、實現日志輪轉

  • Winston-daily-rotate-file:按日期分割日志,支持壓縮和保留天數配置。
    const DailyRotateFile = require('winston-daily-rotate-file');
    const logger = winston.createLogger({
      transports: [
        new DailyRotateFile({
          filename: 'logs/app-%DATE%.log',
          datePattern: 'YYYY-MM-DD',
          maxSize: '20m',
          maxFiles: '14d'
        })
      ]
    });
    
  • 系統級工具:使用logrotate配置全局日志輪轉策略。

四、集中式日志管理

  • ELK Stack:通過Logstash收集日志,Elasticsearch存儲,Kibana可視化分析。
  • Fluentd:輕量級日志收集器,支持多種輸出目標。

五、性能優化技巧

  • 異步日志:使用異步傳輸避免阻塞主線程,如Winston的Async傳輸。
  • 結構化日志:以JSON格式輸出,便于后續處理和分析。

六、安全與權限管理

  • 敏感信息脫敏:在日志記錄前對密碼、token等敏感字段進行過濾。
  • 文件權限控制:通過chmod設置日志文件權限,如chmod 640 error.log。

七、常用工具集成

  • PM2:管理進程的同時支持日志分割和實時查看,命令如pm2 logs。
  • Docker:通過docker logs命令查看容器內應用日志。

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