簡體   English   中英

為什么有這么多的Rails記錄器,為什么上面有鎖?

[英]Why are there so many Rails loggers, and why are there locks on them?

我一直在運行一個可以訪問Rails環境的守護進程 通過四處搜索,我發現這樣做時需要處理兩件事:

  1. 重新初始化與Rails數據庫的連接
  2. 重新初始化Rails記錄器

我了解需要重新初始化與數據庫的連接,但無需重新初始化記錄器。 我看到了這段代碼該代碼旨在使在Rails中運行守護進程更加容易。 它為以下每個創建新的BufferedLogger實例: RailsActiveRecord::BaseActionController::BaseActionMailer::Base

我不清楚兩件事:

  1. 為什么會有四種不同的記錄器? 如果我從控制器內的代碼與模型內的代碼調用logger.info ,是否不使用相同的rails logger?
  2. 為什么確切地必須在守護程序中重新初始化記錄器? 如果沒有,我注意到記錄器拒絕記錄,說有鎖。 但為什么?

我發現的一件事是,有很多人很難理解Rails記錄器。 如果已經有一些博客文章涉及此主題,請告訴我!

好吧,我認為Rails 3中引入了4個記錄器。其背后的想法是,每個組件(ActiveRecord,ActionPack,ActionMailer)並不是真正相互依賴的,應該可以獨立使用它們。 因此,每個人都有自己的記錄器對象的原因。 我認為這是在Railies gem中,所有這4個記錄器基本上都設置為相同的實例,因此,在其中任何一個上調用logger.info都將意味着相同的結果。 但是從理論上講,您可以將ActiveRecord記錄器設置為其他類型。

至於為什么記錄器需要重新初始化,我不知道...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM