Docs Menu
Docs Home
/ /

Configuración de registro

En esta guía, aprenderá a configurar el registro en su aplicación Mongoid. Al configurar el registro, tenga en cuenta que Mongoid proporciona una capa de modelo sobre el controlador Ruby, y este controlador envía las operaciones de datos a MongoDB. Por lo tanto, parte de la salida del registro en una aplicación que usa Mongoid proviene del propio Mongoid y parte del controlador.

El cliente Mongoid es una instancia de cliente del controlador Ruby, por lo que el registrador de un cliente Mongoid es el registrador del controlador Ruby, no el registrador Mongoid. El siguiente código crea un registrador de cliente Mongoid:

Mongoid.client(:default).logger

Dependiendo del marco de su aplicación y de cómo configure Mongoid y el controlador Ruby, pueden usar la misma instancia de registrador o instancias diferentes, potencialmente con configuraciones diferentes.

Al usarse en una aplicación Ruby on Rails, Mongoid hereda el registrador y el nivel de registro de Rails por defecto. Mongoid configura el registrador del controlador en la misma instancia del registrador:

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

Para cambiar el nivel de registro, utilice el configuración estándar de RailsColoque el siguiente bloque en uno de los archivos de configuración de su entorno, como config/environments/production.rb:

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

Nota

La opción de configuración log_level de Mongoid no se utiliza cuando Mongoid opera en una aplicación Rails, porque Mongoid hereda el nivel de registro de Rails.

Para configurar el registrador Mongoid o del controlador de forma diferente al registrador Rails, utilice un inicializador como se muestra en el siguiente código:

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

Nota

No existe ninguna disposición en la biblioteca estándar de Ruby Logger para devolver el dispositivo de registro, como el objeto IO, que está utilizando un registrador.

Para hacer, por ejemplo, que Mongoid o el controlador Ruby registren el archivo de registro estándar de Rails (log/development.log) con un nivel diferente del registrador estándar de Rails (Rails.logger), debe abrir el archivo por separado y pasar el objeto IO resultante al constructor Logger.

Dado que Mongoid configura su propio registrador y el del controlador en la misma instancia que el registrador de Rails, modificar cualquiera de las instancias afecta a todos los registradores. Por ejemplo, el siguiente código cambia el nivel de registro de los tres registradores:

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

Cuando no se carga en una aplicación Ruby on Rails, Mongoid respeta la opción de configuración de nivel superior log_level:

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

También puede configurar el nivel de registro en línea:

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

El destino predeterminado del registro es el error estándar. Para cambiarlo, cree una nueva instancia del registrador como se muestra en el siguiente código:

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

Para cambiar el nivel o el destino del registro del controlador Ruby, agregue el siguiente bloque a su archivo de aplicación:

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

Nota

Mongoid no cambia el registrador del controlador cuando se ejecuta en modo independiente.

Volver

particionado

En esta página