Docs 菜单
Docs 主页
/ / /
Mongoid
/

日志记录配置

在本指南中,您可以学习;了解如何在 Mongoid应用程序中配置日志记录。 配置日志记录时,请注意 Mongoid 在Ruby驾驶员之上提供了一个模型层,并且驾驶员将数据操作分派给MongoDB。因此,使用 Mongoid 的应用程序中的某些日志输出来自 Mongoid 本身,而另一些则来自驾驶员。

Mongoid客户端是Ruby驾驶员客户端实例,因此 Mongoid客户端的记录器是Ruby驾驶员记录器,而不是 Mongoid 记录器。 以下代码创建 Mongoid客户端记录器:

Mongoid.client(:default).logger

根据您的应用程序框架以及您配置 Mongoid 和Ruby驾驶员的方式,它们可能会使用相同的记录器实例或不同的实例(可能具有不同的配置)。

在Ruby on Rails应用程序中使用 Mongoid 时,默认下,Mongoid 会从 Rails 继承记录器和日志级别。 Mongoid 将驱动程序的记录器设置为同一记录器实例:

Rails.logger === Mongoid.logger
# => true
Mongoid.logger === Mongo::Logger.logger
# => true

要更改日志级别,请使用 标准 Rails 配置 。将以下区块放入您的一个环境配置文件中,例如 config/environments/production.rb

Rails.application.configure do
config.log_level = :debug
end

注意

当 Mongoid 在 Rails应用程序中运行时,不使用 log_level Mongoid 配置选项,因为 Mongoid 会继承 Rails 的日志级别。

要以不同于 Rails 记录器的方式配置 Mongoid 或驾驶员记录器,请使用初始化程序,如以下代码所示:

Rails.application.configure do
config.after_initialize do
# Change Mongoid log destination and level
Mongoid.logger = Logger.new(STDERR).tap do |logger|
logger.level = Logger::DEBUG
end
# Change driver log destination and level
Mongo::Logger.logger = Logger.new(STDERR).tap do |logger|
logger.level = Logger::DEBUG
end
end
end

注意

Ruby标准库 Logger 中没有可返回记录器正在使用的日志设备的规定,例如 IO对象。

示例,要使 Mongoid 或Ruby驾驶员以与标准 Rails 记录器 (Rails.logger) 不同的级别日志到标准 Rails日志文件(log/development.log),您必须单独打开该文件并将生成的 IO对象传递给 Logger 构造函数。

由于 Mongoid 将自己的记录器和驱动程序的记录器设置为与 Rails 记录器相同的实例,因此修改任何实例都会影响所有记录器。 示例,以下代码更改所有三个记录器的日志级别:

Mongoid::Logger.logger.level = Logger::DEBUG

当未加载到Ruby on Rails应用程序中时,Mongoid 会遵循 log_level 顶级配置选项:

development:
clients:
default:
...
options:
log_level: :debug

您还可以在线配置日志级别:

Mongoid.configure do |config|
config.log_level = :debug
end

默认日志目标是标准错误。 要更改日志目标,请创建一个新的记录器实例,如以下代码所示:

Mongoid.logger = Logger.new(STDERR).tap do |logger|
logger.level = Logger::DEBUG
end

要更改Ruby驾驶员日志级别或目标,请将以下区块添加到您的应用程序文件中:

Mongo::Logger.logger = Logger.new(STDERR).tap do |logger|
logger.level = Logger::DEBUG
end

注意

在独立运行模式下运行时,Mongoid 不会更改驱动程序的记录器。

后退

分片

在此页面上

  • Overview
  • 驱动程序记录器
  • Ruby on Rails 配置
  • 独立运行配置