Menu Docs
Página inicial do Docs
/ / /
Manual da Biblioteca PHP
/

Registrar eventos de driver

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 .

A biblioteca PHP oferece suporte ao Psr\Log\LoggerInterface, uma3 interface de registrador PSR- que configura seu aplicação para receber mensagens de registro. Você pode registrar uma ou mais instâncias de uma classe que implementa Psr\Log\LoggerInterface para receber mensagens de registro. A biblioteca PHP é construída sobre o driver MongoDB C e a extensão PHP, para que o logger receba notificações de evento de cada componente.

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:

  • Nível do registro: indica a gravidade da mensagem. O debug nível corresponde às atividades padrão do motorista. Para visualizar uma lista de possíveis níveis, consulte 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.

Você pode usar o Monolog, uma biblioteca de registro PHP, para configurar o registro em seu aplicação. O Monolog simplifica a configuração de registro fornecendo uma Monolog\Logger classe . Essa classe implementa a Psr\Log\LoggerInterface interface e fornece manipuladores que direcionam os registros para locais especificados.

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 chamado mongodb.log no diretório do seu projeto

  • Registra 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);

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 classe AbstractLogger e registra o nível de registro, a descrição e o domínio de cada evento

  • Cria um objeto MyLogger e registra o registrador

  • Imprime 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);

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);

Para saber mais sobre os3 loggers PSR-, consulte PSR-: interface de3 logger na documentação PHP-FIG.

Para saber mais sobre o Monolog, consulte o repositório do monolog no GitHub.

Para saber mais sobre os métodos da biblioteca PHP discutidos neste guia, consulte a seguinte documentação da API:

  • MongoDB\add_logger()

  • MongoDB\remove_logger()

Para saber mais sobre como o driver C subjacente gera mensagens de registro, consulte Registro de registros na libmongoc documentação da API.

Voltar

Fluxos de alterações

Nesta página