Docs Menu
Docs Home
/ /

Registrar eventos del controlador

En esta guía, aprenderá a usar el controlador Ruby para configurar el registro de su aplicación. El registro le permite ver un registro discreto, basado en eventos, de las actividades del controlador.

Los "loggers" registran mensajes en un nivel de gravedad o nivel de verbosidad que puedes especificar. Cuando habilitas el registro en tu aplicación, puedes recibir información sobre las actividades de tu aplicación en diferentes niveles de detalle. El driver te permite registrar información categorizada en los siguientes niveles de gravedad:

  • unknown

  • fatal

  • error

  • warn

  • info

  • debug

La lista anterior está ordenada por nivel de gravedad decreciente, siendo unknown el nivel más alto. Al especificar un nivel de gravedad, el controlador también registra todos los mensajes con niveles de gravedad más altos. Por ejemplo, si establece el nivel de registro en error, el controlador también registrará los mensajes con niveles de gravedad fatal y unknown.

Cuanto menor sea el nivel de gravedad que especifique, más información registrará el controlador, lo que podría afectar el rendimiento de su aplicación.

Para configurar su aplicación para que reciba mensajes sobre eventos del controlador, cree una instancia de la clase Logger. Opcionalmente, especifique un nivel de severidad de registro. Si no especifica un nivel de severidad, el predeterminado es INFO. A continuación, configure su objeto Mongo::Client para usar el registrador.

El siguiente ejemplo realiza las siguientes acciones:

  • Crea un registrador y registra la salida en STDOUT. También puede registrarla en un archivo proporcionando una ruta de archivo.

  • Establece el nivel de gravedad en DEBUG.

  • Configura el Mongo::Client para usar el logger.

  • Prueba el registrador con una operación de inserción.

require 'mongo'
require 'logger'
# Create a new Logger instance
logger = Logger.new(STDOUT) # You can also log to a file by providing a file path
# Set the log level (optional)
logger.level = Logger::DEBUG # Options are DEBUG, INFO, WARN, ERROR, FATAL, UNKNOWN
# Configures the Mongo client to use the logger
client = Mongo::Client.new(['127.0.0.1:27017'], logger: logger)
# Tests the logger with an insert operation
client[:test_collection].insert_one({ name: 'Test' })
D, [2025-08-14T15:58:36.804464 ...] DEBUG -- : MONGODB | Topology type 'unknown' initializing.
D, [2025-08-14T15:58:36.804618 ...] DEBUG -- : MONGODB | There was a change in the members of the 'Unknown' topology.
D, [2025-08-14T15:58:36.804694 ...] DEBUG -- : MONGODB | Server 127.0.0.1:27017 initializing.
D, [2025-08-14T15:58:36.805036 ...] DEBUG -- : MONGODB | Waiting for up to 30.00 seconds for servers to be scanned: #<Cluster topology=Unknown[127.0.0.1:27017] servers=[#<Server address=127.0.0.1:27017 UNKNOWN>]>
D, [2025-08-14T15:58:36.817796 ...] DEBUG -- : MONGODB | Server description for 127.0.0.1:27017 changed from 'unknown' to 'standalone'.
D, [2025-08-14T15:58:36.818009 ...] DEBUG -- : MONGODB | Topology type 'Unknown' changed to type 'Single'.
D, [2025-08-14T15:58:36.819403 ...] DEBUG -- : MONGODB | 127.0.0.1:27017 req:6 conn:1:1 sconn:15 | admin.insert | STARTED | {"insert"=>"test_collection", "ordered"=>true, "documents"=>[{"name"=>"Test", "_id"=>BSON::ObjectId('689e3fec1524159575156479')}]..., ...}
D, [2025-08-14T15:58:36.835978 ...] DEBUG -- : MONGODB | 127.0.0.1:27017 req:6 | admin.insert | SUCCEEDED | 0.017s

La salida del logger contiene la hora de la operación, el nivel de gravedad del mensaje y el mensaje de registro.

Puede establecer un nivel de registro global para evitar tener que configurar manualmente un nivel de gravedad para cada registrador. El siguiente ejemplo muestra cómo establecer un nivel de registro global:

# Sets the logger level globally
Mongo::Logger.level == LOGGER.DEBUG

Para obtener más información sobre las opciones de registrador para el controlador Ruby, consulte la siguiente documentación de API:

  • Mongo::Registrador

  • Mongo::Registrable

Volver

Monitoring

En esta página