Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

Registro

En esta guía, puedes aprender a configurar un registrador en el driver de MongoDB para Scala.

Esta guía muestra cómo registrar evento en el driver. Si desea aprender a utilizar la información sobre la actividad del driver en código, consulte la guía de supervisión.

Esta sección explica las dependencias necesarias para configurar un registrador y proporciona un ejemplo de configuración del registrador.

El driver de MongoDB Scala utiliza Simple Logging Facade For Java (SLF4J). Puede especificar un marco de registro en el momento de la implementación cuando utilice SLF4J. La configuración de un registrador es opcional en el driver de Scala.

Cuando inicia su aplicación, el driver MongoDB Scala busca el artefacto slf4j-api en su classpath. Si el driver no puede encontrar el artefacto slf4j-api, registra la siguiente advertencia y desactiva todo el registro posterior:

WARNING: SLF4J not found on the classpath. Logging is disabled for the 'org.mongodb.driver' component

Para configurar un registrador, debes incluir los siguientes componentes en tu Proyecto:

  • El artefacto slf4j-api

  • Un framework de registro

  • Un vínculo que conecta el artefacto slf4j-api a un framework de registros

En el siguiente ejemplo se muestra cómo vincular el artefacto slf4j-api al marco de registro elegido.

Seleccione la pestaña Logback o Log4j2 para configurar el marco de registro elegido y ver los ejemplos de código correspondientes:

Para usar Logback, agregue las siguientes líneas al archivo build.sbt de su proyecto. Estas líneas incluyen el artefacto slf4j-api, el marco de registro y el enlace.

libraryDependencies += "org.slf4j" % "slf4j-api" % "2.0.13"
libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.5.6"

Para probar la configuración de Logback, agregue el siguiente código al archivo Main.scala de su proyecto. El código se conecta a su implementación de MongoDB y recupera un documento. Después de agregar el código, use sbt run para ejecutar su aplicación en el terminal en lugar del IDE.

val mongoClient = MongoClient("<connection string>")
val database: MongoDatabase = mongoClient.getDatabase("<database>")
val collection: MongoCollection[Document] = database.getCollection("<collection>")
collection.find().first().printHeadResult()

Nota

Nivel de registro por defecto

El nivel de registro por defecto de Logback es DEBUG. El nivel DEBUG registra mensajes de diagnóstico detallados destinados a la resolución de problemas, como conexiones abiertas y los comandos que el driver envía y recibe de MongoDB. Para aprender a cambiar el nivel de registro del registrador Logback, consulte el ejemplo en la sección Configurar su registrador de esta página.

Para obtener más información sobre Logback, consulta el manual de Logback.

Para usar Log4j2, agregue las siguientes líneas al archivo build.sbt de su proyecto. Estas líneas incluyen el artefacto slf4j-api, el marco de registro y el enlace.

libraryDependencies += "org.slf4j" % "slf4j-api" % "2.0.13"
libraryDependencies += "org.apache.logging.log4j" % "log4j-slf4j2-impl" % "2.24.3"
libraryDependencies += "org.apache.logging.log4j" % "log4j-core" % "2.24.3"

Para probar la configuración de Log4j2, agregue el siguiente código al archivo Main.scala de su proyecto. El código registra un mensaje de error. Después de agregar el código, use sbt run para ejecutar la aplicación en la terminal en lugar del IDE.

import org.slf4j.Logger
import org.slf4j.LoggerFactory
val logger: Logger = LoggerFactory.getLogger("MyApp")
logger.error("Logging an Error")

Nota

Nivel de registro por defecto

El nivel de registro por defecto de Log4j2 es ERROR. Esto significa que la ejecución de operaciones estándar en el driver de MongoDB Scala no producirá resultados de Log4j2 sin la configuración del nivel de registro. Para aprender a cambiar el nivel de registro de su registrador Log4j2, consulte el ejemplo en la sección Configurar su registrador de esta página.

Para obtener más información sobre Log4j2, consulta el Manual Log4j2.

Para obtener más información sobre SLF4J, consulte la documentación de SLF4J.

Para configurar su registrador, debe usar el sistema de configuración del marco de registro al que se vinculó con SLF4J.

Un nivel de registro especifica la urgencia que debe tener un mensaje para que el registrador lo emita. El siguiente ejemplo muestra cómo usar el sistema de configuración de cada marco de registro para establecer el nivel de registro en INFO. Seleccione la pestaña Logback o Log4j2 para ver el código correspondiente a cada enfoque:

Logback lee su configuración de un archivo llamado logback.xml en su classpath. Este archivo no existe por defecto, por lo que debe crearlo. Puede colocar logback.xml en cualquier lugar de su proyecto Scala, siempre que sea accesible desde su classpath.

El framework Logback define los siguientes niveles de registro, ordenados de más urgente a menos urgente:

  • Error

  • ADVERTENCIA

  • información

  • DEBUG

  • TRACE

Para obtener más información sobre el significado de cada nivel de registro, consulte Nivel efectivo en la documentación de Logback.

Inserta el siguiente código en tu archivo logback.xml:

<configuration>
<appender name="CONSOLE"
class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%-4relative [%thread] %-5level %logger{30} - %msg%n
</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
</configuration>

Para comprobar que la configuración del registrador fue exitosa, ejecuta el siguiente código con el comando sbt run en lugar de tu IDE:

val mongoClient = MongoClient("<connection string>")
val database: MongoDatabase = mongoClient.getDatabase("<database>")
val collection: MongoCollection[Document] = database.getCollection("<collection>")
collection.find().first().printHeadResult()

Para obtener más información sobre la configuración de Logback, consulte el Manual de Logback.

Log4j2 lee su configuración de un archivo llamado log4j2.xml en su classpath. Este archivo no existe por defecto, por lo que debe crearlo. Puede colocar log4j2.xml en cualquier lugar de su proyecto Scala, siempre que sea accesible desde su classpath.

El marco Log4j2 define los siguientes niveles de registro, ordenados de más urgente a menos urgente:

  • Fatal

  • Error

  • ADVERTENCIA

  • información

  • DEBUG

  • TRACE

  • Todo

Para obtener más información sobre lo que significa cada nivel de registro, consulte Niveles de registro personalizados en la documentación de Log4j2.

Establece tu archivo log4j2.xml como el siguiente:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>

Para comprobar que la configuración del registrador fue exitosa, ejecuta el siguiente código con el comando sbt run en lugar de tu IDE:

val mongoClient = MongoClient("<connection string>")
val database: MongoDatabase = mongoClient.getDatabase("<database>")
val collection: MongoCollection[Document] = database.getCollection("<collection>")
collection.find().first().printHeadResult()

Para obtener más información sobre cómo configurar Log4j2, consulte la guía de configuración de Log4j2 en la documentación de Log4j2.

Los marcos de registro utilizan nombres de registrador jerárquicos para organizar los eventos de registro. Un registrador es un antecesor de otro registrador si su nombre seguido de un "." es un prefijo del nombre del otro registrador. Por ejemplo, el registrador grandparent es un antecesor del registrador grandparent.parent, que es un antecesor del registrador grandparent.parent.child.

El siguiente código crea un registrador parent y un registrador parent.child, en el que el registrador parent es un antecesor del registrador parent.child:

import org.slf4j.Logger
import org.slf4j.LoggerFactory
val loggerParent: Logger = LoggerFactory.getLogger("parent")
val loggerChild: Logger = LoggerFactory.getLogger("parent.child")

Una jerarquía de registrador es similar a una jerarquía de clases en Scala: un registrador hereda las propiedades de su registrador antecesor y también puede definir las suyas propias.

El driver de Scala incluye los siguientes nombres de registradores por defecto:

  • org.mongodb.driver.authenticator: autenticación

  • org.mongodb.driver.client: MongoClient instancias

  • org.mongodb.driver.cluster: supervisión de implementación de MongoDB

  • org.mongodb.driver.connectionconexiones y agrupaciones de conexiones

  • org.mongodb.driver.connection.tls: TLS/SSL

  • org.mongodb.driver.operation: operaciones, incluidos los reintentos automáticos

  • org.mongodb.driver.protocol: Comandos y respuestas intercambiados con implementaciones de MongoDB

  • org.mongodb.driver.urianálisis de cadena de conexión

  • org.mongodb.driver.management: JMX (Java Management Extensions)

El siguiente ejemplo muestra cómo establecer la configuración del registrador raíz en OFF y la configuración del registrador org.mongodb.driver.connection en INFO, de modo que la aplicación solo registre mensajes relacionados con la conexión a una implementación de MongoDB.

Seleccione la pestaña Logback o Log4j2 para ver la configuración de ejemplo y la salida del marco correspondiente:

Inserta el siguiente código en tu archivo logback.xml:

<configuration>
<appender name="CONSOLE"
class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%-4relative [%thread] %-5level %logger{30} - %msg%n
</pattern>
</encoder>
</appender>
<logger name="org.mongodb.driver.connection" level="INFO" additivity="true"/>
<root level="OFF">
<appender-ref ref="CONSOLE" />
</root>
</configuration>

Para comprobar que la configuración del registrador fue exitosa, ejecuta el siguiente código con el comando sbt run en lugar de tu IDE:

val mongoClient = MongoClient("<connection string>")
val database: MongoDatabase = mongoClient.getDatabase("<database>")
val collection: MongoCollection[Document] = database.getCollection("<collection>")
collection.find().first().printHeadResult()

Para más información sobre cómo configurar Logback, consulte la guía oficial de configuración de Logback.

Inserta el siguiente código en tu archivo log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="org.mongodb.driver.connection" level="INFO"/>
<Root level="OFF">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>

Para comprobar que la configuración del registrador fue exitosa, ejecuta el siguiente código con el comando sbt run en lugar de tu IDE:

val mongoClient = MongoClient("<connection string>")
val database: MongoDatabase = mongoClient.getDatabase("<database>")
val collection: MongoCollection[Document] = database.getCollection("<collection>")
collection.find().first().printHeadResult()

Para obtener más información sobre cómo configurar Log4j2, consulta la guía de configuración de Log4j2.oficial

Puedes aplicar la configuración de registro a tu instancia MongoClient utilizando los métodos applyToLoggerSettings() y applicationName().

La siguiente tabla describe los métodos que puedes encadenar a tus configuraciones del registrador para modificar el comportamiento del registro:

Método
Descripción

maxDocumentLength()

Establece la longitud máxima del documento, en caracteres, de un solo mensaje de registro

Por defecto: 1000

En el siguiente ejemplo, se nombra la aplicación que envía solicitudes y se especifican 5000 caracteres como la longitud máxima del mensaje de registro. Ejecute el ejemplo con el comando sbt run en lugar de su IDE.

val mongoClient = MongoClient(
MongoClientSettings.builder()
.applyConnectionString(ConnectionString("<your connection string>"))
.applicationName("<application name>")
.applyToLoggerSettings(builder =>
builder.maxDocumentLength(5000))
.build())

Para obtener más información, consulta la MongoClientSettings.Builder documentación de la API.