Felipe Weckx

Enviando mensagens via syslog com PHP

Enviando a mensagem

Com a mensagem sendo construída corretamente, podemos agora envia-la para um servidor de syslog. Como o padrão especifica somente o formato da mensagem a mesma pode ser enviada utilizando-se diversos protocolos, o mais comum é o UDP. Como temos diversas possibilidades vamos utilizar o pattern Strategy e criar uma estrutura de classes como a abaixo:

Diagrama da interface para envio das mensagens
Diagrama UML da interface de envio

Diagrama UML da interface de envio

Criamos uma interface simples que tem apenas o método send que recebe uma mensagem (objeto que implemente MessageInterface) e um parâmetro //target// com o destino da mensagem. E inicialmente implementamos duas classes: uma para enviar via UDP e outra via TCP. Abaixo a implementação do envio:

 E também a implementação do envio TCP:

Na classe de envio via TCP adicionamos um atributo timeout para controlar o timeout do envio.

Utilizando as classes

Com a classe da mensagem e do envio prontas, para utilizar em algum ponto do código podemos fazer:

 Conclusão

Podemos ver que o syslog é um padrão de mensagens de log bastante versátil e simples, podendo ser utilizado por todo tipo de aplicação. A possibilidade de centralizar todos os logs num único local é de grande valor para garantir a integridade dos mesmos e facilitar a busca e análise de mensagens.

O código completo do exemplo, com a classe de mensagem no padrão BSD e no padrão Syslog está disponível no github:

https://github.com/weckx/wcx-syslog


Warning: Use of undefined constant ulclasses - assumed 'ulclasses' (this will throw an Error in a future version of PHP) in /var/www/html/wp-content/themes/weckx-theme/functions.php on line 65
Deixe um comentário

Deixe uma resposta

O seu endereço de e-mail não será publicado.