Node日誌感受

why

日誌是用來記錄程序運行重要的工具

  • 記錄請求日誌,關鍵節點打上日誌,可以追蹤問題(生產
  • 方便調試,定位故障
  • 監控應用的運行狀態

what(egg.js爲例)

日誌分爲:

  • appLogger應用日誌,也是我們自定義的日誌
  • coreLogger核心框架,插件日誌
  • errorLogger
  • agentLogger用於監控agent日誌

日誌級別:

  • ctx.logger.debug()
  • ctx.logger.info()
  • ctx.logger.warn()
  • ctx.logger.error()
  • 以appLogger爲例,一共4*4種

日誌編碼:

  • 默認utf-8

feature

目前日誌都支持切割,每天一個文件,以.log.2019-09-14爲尾綴(小時切割和文件大小切割實用性不高),編寫日誌的時候我們也需要注意如下幾點:

  • 在關鍵請求關鍵位置打好日誌

  • 打印日誌註明這是哪個文件哪個方法處理的日誌

    • logger.debug(`>>>> Entering yourMethod(month = ${month}, count= ${count}");
      //通過日誌 >>>> 和 <<<< 將給出函數輸入和退出的信息
      
  • 日誌不能太多,一個是查問題日誌太多,第二個是對硬盤寫入日誌也有一定性能影響(egg是寫入內存,每秒保存一次硬盤)

  • 合理使用try-catch來進行日誌輸出

  • 日誌寫法一定要避免簡潔,不要日誌再拋錯(正常打印參數,打印處理結果)

  • 日誌不能具備除了日誌以外的功能

  • 正確把握日誌級別,info記錄信息(最主要的),debug顯示調試信息,warn顯示警告,error保存數據庫請求類型的報錯

  • 儘量使用ctx.logger而並非console.log,後者將會把所有日誌打印在stdout中,無法關閉或打開調試信息,並且不區分級別

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章