我一直在运行一个可以访问 rails 环境的守护进程。通过搜索,我发现这样做时需要处理两件事:
- 重新初始化到 Rails 数据库的连接
- 重新初始化 Rails 记录器
我了解需要重新初始化与数据库的连接,但不需要重新初始化记录器。我看到了这段代码,它旨在使使用 Rails 运行守护程序更容易一些。它为以下每个创建新的 BufferedLogger 实例:Rails
, ActiveRecord::Base
, ActionController::Base
,ActionMailer::Base
有两件事我不清楚:
- 为什么有四种不同的记录器?如果我
logger.info
从控制器中的代码与模型中的代码调用,是不是使用相同的 Rails 记录器? - 为什么必须在守护进程中重新初始化记录器?如果不是,我注意到记录器拒绝记录,说有锁。但为什么?
我发现的一件事是,有很多人很难理解 Rails 记录器。如果已经有一些博客文章涵盖了这个主题,请告诉我!