Overview
En esta guía, puedes aprender cómo usar la librería PHP para configurar y ajustar el registro. El registro permite recibir información sobre las operaciones en la base de datos, las conexiones al servidor, los errores y otros eventos que ocurren mientras funciona la aplicación.
La librería PHP admite Psr\Log\LoggerInterfaceUna interfaz de registro PSR-3 que configura tu aplicación para recibir mensajes de registro. Puedes registrar una o más instancias de una clase que implemente
Psr\Log\LoggerInterface Para recibir mensajes de registro. La biblioteca PHP se basa en el controlador C de MongoDB y la extensión PHP, por lo que el registrador recibe notificaciones de eventos de cada componente.
Configurar registro
Para configurar la aplicación para recibir mensajes sobre los eventos del driver, cree una instancia de una clase de registro que implemente la interfaz Psr\Log\LoggerInterface. Luego, usa la función MongoDB\add_logger() para registrar el logger.
Después de registrar un registrador, la librería PHP genera mensajes de registro que se asemejan al siguiente mensaje de muestra:
[0] => Array ( [0] => debug [1] => Created client with hash: ... [2] => PHONGO )
El mensaje de registro de muestra incluye la siguiente información:
Nivel de registro: Indica la gravedad del mensaje. El nivel
debugcorresponde a las actividades estándar del controlador. Para ver una lista de posibles niveles, consulte PSR\Log\LogLevel.Mensaje: describe el evento registrado, que indica la creación de un nuevo cliente.
Domain string: Especifica el componente del driver que emitió el mensaje del registro. El dominio
PHONGOindica que la extensión PHP generó el evento.
Nota
Formato de mensaje de registro
El ejemplo anterior muestra un mensaje de registro almacenado en una matriz. Sin embargo, el formato de los mensajes de registro puede variar según la implementación del registro.
Crear un registrador de monólogos
Puede usar Monolog, una biblioteca de registro de PHP, para configurar el registro en su aplicación. Monolog simplifica la configuración del registro al proporcionar una Monolog\Logger clase. Esta clase implementa la Psr\Log\LoggerInterface interfaz y proporciona controladores que dirigen los registros a ubicaciones específicas.
Para utilizar Monolog, instala el paquete monolog/monolog ejecutando el siguiente comando:
composer require monolog/monolog
Luego, puedes crear un logger definiendo un Monolog\Logger objeto y registrándolo en la librería PHP.
Este ejemplo realiza las siguientes acciones:
Crea un registrador Monolog llamado
mongodb-loggerSe utiliza un handler para escribir todos los registros con una gravedad de
debugo superior en un archivo llamadomongodb.logen el directorio de tu proyectoRegistra el logger
use Monolog\Handler\StreamHandler; use Monolog\Logger; $logger = new Logger('mongodb-logger'); $logger->pushHandler(new StreamHandler(__DIR__ . '/mongodb.log', Logger::DEBUG)); MongoDB\add_logger($logger);
Crear un registrador personalizado
Para crear un registrador PSR-3 personalizado, crea una clase que implemente la interfaz Psr\Log\LoggerInterface. Puedes implementar Psr\Log\LoggerInterface definiendo una clase que extienda la clase Psr\Log\AbstractLogger. AbstractLogger implementa LoggerInterface y un método genérico log(), que recibe mensajes de registro en cada nivel de gravedad.
Este ejemplo realiza las siguientes acciones:
Crea una clase de registro llamada
MyLoggerque extiende la claseAbstractLoggery registra el nivel de registro, la descripción y el dominio de cada eventoCrea un objeto
MyLoggery registra el registradorImprime cada mensaje de registro
class MyLogger extends Psr\Log\AbstractLogger { public array $logs = []; public function log(string $level, string|\Stringable $message, array $context = []): void { $this->logs[] = [$level, $message, $context['domain']]; } } $customLogger = new MyLogger(); MongoDB\add_logger($customLogger); print_r($customLogger->logs);
Remover un Logger
Para anular el registro de un registrador, pase su objeto de registrador como parámetro a la función MongoDB\remove_logger(). Tras llamar a esta función, el registrador dejará de recibir mensajes de registro sobre su aplicación.
El siguiente ejemplo anula el registro de un registrador:
MongoDB\remove_logger($logger);
Información Adicional
Para obtener más información sobre los registradores PSR-3, consulte PSR-3: Interfaz de registrador en la documentación de PHP-FIG.
Para obtener más información sobre Monolog, consulta el monolog repositorio de GitHub.
Documentación de la API
Para obtener más información sobre los métodos de la librería PHP tratados en esta guía, consulte la siguiente documentación del API:
Para obtener más información sobre cómo el controlador subyacente de C genera mensajes de registro, consulte Registro en la documentación API libmongoc.