Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
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 .

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.

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.

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

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.

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

To learn more about how the underlying C driver generates log messages, see Logging in the libmongoc API documentation.

Voltar

Fluxos de alterações

Nesta página