Se você já desenvolveu qualquer tipo de aplicação já deve ter sentido a necessidade de registrar logs, seja para rastrear algum tipo de erro ou para saber se a aplicação está realizando os processos corretamente, principalmente se a aplicação rodar como um serviço ou em plano de fundo.
Existem diferentes estratégias para registrar logs, acredito que o método mais comum seja registrar em um arquivo de texto, porém você pode querer registrar no console, em um banco de dados ou até mesmo utilizar algum serviço externo como o Sentry. Você pode inclusive utilizar várias estratégias ao mesmo tempo em uma mesma aplicação.
Uma das soluções nessa situação é desenvolver uma biblioteca de log utilizando o padrão de projeto Strategy Pattern para lidar com essas diferentes estratégias. Neste artigo vou apresentar desde um exemplo mais simples até um exemplo utilizando Strategy Pattern para registro de logs.
Código fonte disponível em: https://github.com/rafaelcouto/diferentes-estrategias-de-log-utilizando-strategy-pattern-com-php