我有一個模型,但我不希望它寫入常見的日誌其查詢。是否有可能爲某個模型切換記錄器?Rails 3模型記錄器
1
A
回答
2
你可以這樣做替換STDOUT:
創建自定義記錄器,如果你想格式化differently.You可以忽略這一點,如果格式需要是相同的。
class ModelLogger < Logger
def format_message(severity, timestamp, progname, msg)
"#{timestamp.to_formatted_s:)db)} #{severity} #{msg}\n"
end
end
在config /初始化/,創建logs.rb和補充一點:
model_logfile = File.open("#{RAILS_ROOT}/log/model.log", 'a')
model_logfile.sync = true
MODEL_LOG = ModelLogger.new(model_logfile)
現在,您重新啓動服務器後,
MODEL_LOG.debug "This will be logged to model.log"
MODEL_LOG.error "Errors also can be logged."
+0
有一些單獨的記錄器我知道這一點。但該模型將其sql查詢寫入日誌,我想忽略其中的一些 – 2012-08-09 13:50:47
1
這應該回答你的問題。與任何符合您的需求
how to change the rails logger to use standard out from rake tasks (rails2)
1
我用推核心寶石,它會在日誌中寫下許多令人討厭的消息,如下所示,每2秒鐘:
Push::Message Load (0.6ms) SELECT "push_messages".* FROM "push_messages" ...
我已經添加以下代碼初始化器,以便從日誌中刪除「推::消息Load」事件:
# Disable annoying (every 2 sec) "Push::Message Load" events
ActiveRecord::LogSubscriber.class_eval do
alias_method :old_sql, :sql
def sql(event)
return if event.payload[:name] =~ /Push::Message Load/
old_sql(event)
end
end
相關問題
- 1. Rails 3中的自定義記錄器?
- 2. Rails 3,在創建記錄時更新控制器中的鏈接模型
- 3. 記錄包含模型CakePHP的3
- 4. Rails:每做3條記錄
- 5. rails 3覆蓋模型設置器
- 6. 在導軌3設置記錄器3
- 7. Rails 3中 - 在模型
- 8. Rails 3 group_by關聯模型
- 9. Rails 3 - 模型結構
- 10. Rails 3模型協會
- 11. Rails 3的模型設置
- 12. Rails 3 ActionMailer模型屬性
- 13. 模型四級深 - Rails 3
- 14. Rails grouped_collection_select與3個模型
- 15. Rails 3窗體和模型
- 16. Rails活動記錄模型關係 - 屬於三個模型的一個模型
- 17. Rails 3中的多模型窗體3
- 18. Rails 3:3模型和路由錯誤
- 19. 的Rails 3:錯誤時訪問活動記錄模型的屬性
- 20. 的Rails 3 HABTM通過記錄相關聯的模型屬性找到
- 21. 通過模型關聯排序的活動記錄查詢:Rails 3和SQLite
- 22. Rails 3的模型完全belongs_to的不同表中的每個記錄
- 23. Rails 3從單一模型和方法創建多個記錄條目
- 24. Rails 3 - 獲取Lates觀察者記錄
- 25. 如何總結Rails 3中的記錄?
- 26. Rails 5 beta 3 ActiveRecord記錄無效
- 27. Rails 3中得到嵌套記錄
- 28. Rails 3保存記錄問題
- 29. Rails 3中訪問子記錄
- 30. 的Rails 3計數記錄的日期
請參閱http://stackoverflow.com/questions/6233401/custom-logger -in-rails-3 – iltempo 2012-08-09 12:13:19
這是用於完整應用的記錄器。我想爲模型 – 2012-08-09 12:40:03