Como configurar e utilizar o serviço de log do Symfony: monitorando o seu código
O Symfony oferece um serviço de log integrado, que pode ser útil para monitorar eventos no código da sua aplicação. Neste artigo, vamos explicar como configurar e utilizar o serviço de log do Symfony.
Configurando o serviço de log
Antes de começar a utilizar o serviço de log, é preciso configurá-lo. A configuração padrão do Symfony já inclui alguns canais de log, como “app” e “security”, mas você pode definir os seus próprios canais e níveis de log.
Para configurar o serviço de log, você precisa editar o arquivo config/packages/dev/monolog.yaml
(ou o arquivo equivalente para o ambiente de produção). Este arquivo contém as configurações para o serviço de log.
Para adicionar um novo canal de log, você pode usar o seguinte código:
# config/packages/dev/monolog.yaml
monolog:
channels: ["meu_canal"]
Você pode definir um nível de log para cada canal, usando as opções level
e handler
. Por exemplo:
# config/packages/dev/monolog.yaml
monolog:
handlers:
meu_canal:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
channels: ["meu_canal"]
Neste exemplo, definimos o nível de log do canal “meu_canal” como “debug”, o que significa que todas as mensagens de log com nível igual ou superior a “debug” serão registradas neste canal.
Utilizando o serviço de log
Agora que o serviço de log está configurado, podemos utilizá-lo no nosso código. O Symfony disponibiliza um serviço de log chamado logger
, que pode ser injetado em outras classes e utilizado para registrar mensagens de log.
Para injetar o serviço de log em uma classe, é preciso definir um construtor para a classe e passar o serviço de log como um parâmetro:
namespace AppMeuNamespace;
use PsrLogLoggerInterface;
class MinhaClasse
{
private $logger;
public function __construct(LoggerInterface $logger)
{
$this->logger = $logger;
}
public function minhaFuncao()
{
// Registra uma mensagem de log com nível "info"
$this->logger->info('Minha mensagem de log');
}
}
Neste exemplo, a classe MinhaClasse
recebe o serviço de log através do construtor e registra uma mensagem de log no nível “info”.
Conclusão
O serviço de log do Symfony é uma ferramenta útil para monitorar eventos na sua aplicação. Com a configuração correta, é possível registrar mensagens de log relevantes para o seu código e analisá-las posteriormente.
Para mais informações sobre o serviço de log do Symfony, consulte a documentação oficial em https://symfony.com/doc/current/logging.html.