Visão geral
Neste guia, você pode aprender como usar a biblioteca PHP para configurar e configurar o registro. O registro permite que você receba informações sobre operações de banco de dados , conexões de servidor , erros e outros eventos que ocorrem durante a execução do aplicação .
The PHP library supports Psr\Log\LoggerInterface, a PSR-3 logger interface that configures your application to receive log messages. You can register one or more instances of a class that implements Psr\Log\LoggerInterface
to receive log messages. The PHP library is built on top of the MongoDB C driver and the PHP extension, so the logger receives event notifications from each component.
Configurar registros
Para configurar seu aplicação para receber mensagens sobre eventos de driver, crie uma instância de uma classe de registrador que implemente a interface Psr\Log\LoggerInterface
. Em seguida, use a função MongoDB\add_logger()
para registrar seu registrador.
Depois de registrar um logger, a biblioteca PHP gera mensagens de log que se assemelham à seguinte mensagem de exemplo:
[0] => Array ( [0] => debug [1] => Created client with hash: ... [2] => PHONGO )
A mensagem de registro de amostra inclui as seguintes informações:
Log level: Indicates the severity of the message. The
debug
level corresponds to standard driver activities. To view a list of possible levels, see PSR\Log\LogLevel.Mensagem: descreve o evento registrado , que sinaliza a criação de um novo cliente.
String de domínio: especifica o componente do driver que emitiu a mensagem de registro. O domínio
PHONGO
indica que a extensão PHP gerou o evento.
Observação
Formato de mensagem de registro
O exemplo anterior mostra uma mensagem de registro armazenada em uma array. No entanto, o formato das suas mensagens de registro pode ser diferente dependendo da sua implementação de registro.
Criar um registrador de monolog
You can use Monolog, a PHP logging library, to configure logging in your application. Monolog simplifies logging configuration by providing a Monolog\Logger
class. This class implements the Psr\Log\LoggerInterface
interface and provides handlers that direct logs to specified locations.
Para utilizar o Monolog, instale o pacote monolog/monolog
executando o seguinte comando:
composer require monolog/monolog
Em seguida, você pode criar um logger definindo um objeto Monolog\Logger
e registrando-o com a biblioteca PHP.
Este exemplo executa as seguintes ações:
Cria um registrador Monolog chamado
mongodb-logger
Usa um manipulador para escrever todos os registros com gravidade
debug
ou superior em um arquivo chamadomongodb.log
no diretório do seu projetoRegistra o registrador
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);
Crie um registrador personalizado
Para criar um registrador PSR-3 personalizado, crie uma classe que implemente a interface do Psr\Log\LoggerInterface
. Você pode implementar Psr\Log\LoggerInterface
definindo uma classe que estenda a classe Psr\Log\AbstractLogger
. AbstractLogger
implementa LoggerInterface
e um método log()
genérico, que recebe mensagens de registro em cada nível de gravidade.
Este exemplo executa as seguintes ações:
Cria uma classe de registrador chamada
MyLogger
que estende a classeAbstractLogger
e registra o nível de registro, a descrição e o domínio de cada eventoCria um objeto
MyLogger
e registra o registradorImprime cada mensagem 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 um registrador
Para cancelar o registro de um registrador, passe seu objeto de registrador como parâmetro para a função MongoDB\remove_logger()
. Depois de chamar essa função, seu registrador não recebe mais mensagens de registro sobre seu aplicação.
O exemplo a seguir cancela o registro de um criador de logs:
MongoDB\remove_logger($logger);
Informações adicionais
To learn more about PSR-3 loggers, see PSR-3: Logger Interface in the PHP-FIG documentation.
To learn more about Monolog, see the monolog GitHub repository.
Documentação da API
Para saber mais sobre os métodos da biblioteca PHP discutidos neste guia, consulte a seguinte documentação da API:
To learn more about how the underlying C driver generates log messages, see Logging in the libmongoc
API documentation.