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 .
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.
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:
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.
Criar um registrador de monolog
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 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
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.
Documentação da API
Para saber mais sobre os métodos da biblioteca PHP discutidos neste guia, consulte a seguinte documentação da API:
Para saber mais sobre como o driver C subjacente gera mensagens de registro, consulte Registro de registros na libmongoc
documentação da API.