Un ensemble de classe utilisant l'observer design pattern et la SPL pour gérer tout type de log :
- la classe Formatter formate un enregistrement pour supporter tout type de format (HTML, XML, TXT, etc.);
- la classe Handler gère un enregistrement pour un certain niveau d'erreur et le formate à l'aide d'une classe Formatter;
- l'interface Level définit les constantes des niveaux de journaux disponibles.
- la classe Manager gère les Handler et les messages à journaliser (encapsulées dans une classe Record).
- la classe Record contient les informations d'un message à journaliser (date, message, niveau).
1- On commence par attacher un Handler (avec un Formatter et un niveau d'erreur à gérer) à notre Manager.
2- On "log" nos messages.
3- On notifie les Handlers d'inscrire les messages dans les logs.