Poo - logging package

Description

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.

Source / Exemple :


<?php

error_reporting(E_ALL);

spl_autoload_extensions('.php');
spl_autoload_register();

set_include_path(
    realpath(dirname(__FILE__)) . 'Lib' . PATH_SEPARATOR . get_include_path()
);

date_default_timezone_set('Europe/Paris');

$filename = realpath(dirname(__FILE__))
          . DIRECTORY_SEPARATOR . 'var'
          . DIRECTORY_SEPARATOR . 'log'
          . DIRECTORY_SEPARATOR . 'app.log';

use \Lib\Logging\Level,
    \Lib\Logging\Manager,
    \Lib\Logging\Handler\StreamHandler,
    \Lib\Logging\Formatter\SimpleFormatter;

$file = new StreamHandler($filename);
$file->setFormatter(new SimpleFormatter())
        ->setLevel(Level::ALL);

$output = new StreamHandler('php://output');
$output->setFormatter(new SimpleFormatter())
        ->setLevel(Level::ALL ^ Level::DEBUG);

Manager::getInstance()
    ->attach($file)
    ->attach($output)
    ->log(Level::ERR, 'Simple test of error message')
    ->log(Level::DEBUG, 'Simple test of debug message');

// prints:
// 2010-01-13T17:35:23+01:00    ERR [8] Simple test of error message

// the file "/var/log/app.log" contains:
// 2010-01-13T17:35:23+01:00   DEBUG   [128]   Simple test of debug message
// 2010-01-13T17:35:23+01:00   ERR     [8]     Simple test of error message
?>

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.