Domanda

Così ho recentemente scoperto che il log4 * pacchetto era disponibile per PHP e dopo aver visto questo entusiasmo scaricato le ultime dal sito log4php e seguì le istruzioni di installazione. Le istruzioni indicano che uno è quello di scaricare il pacchetto di catrame, decomprimere, e inserire la seguente directory in un luogo di uno di scelta: log4php / src / main / php

Quindi ho copiato il contenuto della log4php/src/main/php nel mio dir lib sotto lib / log4php.

Nel mio script, come richiesto, ho richiesto la classe 'Logger.php' e ha indicato un file di proprietà per gestire le mie appenders. Il file delle proprietà, log4php.properties, si trova sul mio filesystem "/home1/ioforgec/www/devlab/pnotes/config/log4php.properties".

Ecco il contenuto del file di log:

#
# Example Logger
#
log4php.appender.EA1 = LoggerAppenderConsole
log4php.appender.EA1.target = STDOUT
log4php.appender.EA1.layout = LoggerLayoutPattern
log4php.appender.EA1.ConversionPattern = "%m"
log4php.appender.EA1.threshold = FATAL
log4php.exampleLogger = FATAL, EA1

Così qui è una copia del mio script che implementa ( 'avvolge' più o meno la funzionalità log4php):

<?php

require_once('/home1/ioforgec/www/devlab/pnotes/lib/log4php/Logger.php');

class LogUtil
{
    public $logger;

    public $properties_file = "/home1/ioforgec/www/devlab/pnotes/config/log4php.properties";

    public static function logExample($msg)
    {
        Logger::configure($properties_file);
        $logger = Logger::getLogger("example");
        $logger->debug("Shouldnt see this print because of config max level FATAL");
        $logger->fatal($msg);
    }
}
?>

Al fine di verificare che questo funziona correttamente, il seguente script chiama il LogUtil.php indicato sopra:

#!/usr/bin/php
<?php
require_once("lib/utils/LogUtil.php");
LogUtil::logExample("example message");
?>

Così, nonostante la configurazione l'esempio logger per formattare i messaggi come il messaggio di pianura, nonostante l'impostazione del livello del logger ad un massimo di FATAL, non solo nella dichiarazione logger, ma anche nel comando di soglia, la stampa alla console mi sembra il logger principale di default:

Mon Oct 18 20:30:05 2010,705 [827] DEBUG example - Shouldnt see this print because of config max level FATAL
Mon Oct 18 20:30:05 2010,711 [827] FATAL example - example message

vedo l'affermazione di stampa senza la formattazione pianura come specificato, e vedo due dichiarazioni di stampa, la stampa di debug (che non avrebbe mai dovuto stampati a causa dell'impostazione del FATAL sulla configurazione logger - FATAL è molto più elevato rispetto DEBUG)

Cosa diavolo sto facendo di sbagliato? Ive ha provato ogni combinazione di messa a punto che posso possibilmente pensare. Qualcuno ha qualche suggerimento?

Modifica - Aggiornamento - Questo è ancora un problema. Nessun progresso.

Edit2 - Davvero? Ha nessuno su questo forum cercato di utilizzare questo pacchetto di registrazione molto popolare e la sua incarnazione come modulo PHP?

Ho provato ogni strada immaginabile per cercare di ottenere la mia domanda ha risposto, tra cui mailing list dell'utente log4php.

È stato utile?

Soluzione

Dopo molte molte più ore di manipolare il file di configurazione ho scoperto un piccolo, ma estremamente importante factoid. Al fine di specificare un 'registratore' è necessario un nome sotto la gerarchia 'logger' e le sue appenders sotto la 'appender' gerarchia, ecc ecc Ad esempio:

# for the 'console' logger named 'example' we first define the appender:
log4php.appender.consoleAppender = LoggerAppenderConsole
log4php.appender.consoleAppender.target = STDOUT
log4php.appender.consoleAppender.layout = LoggerLayoutSimple

# we then assign the appender and the minimum log level to the logger:
log4php.logger.example = WARN, consoleAppender

Il mio errore è stato nel vedere il nome della gerarchia radice logger 'log4php.rootLogger' e partendo dal presupposto che, al fine di assegnare un logger una necessità solo il nome di un valore per 'log4php.lognameLogger'. Purtroppo questo non è una scusa in quanto non v'è stato un esempio, sepolto, nella documentazione. Suppongo trovandolo a 9+ ore è meglio che non a tutti:)

Grazie a chi mi ha ricordato che non ci fosse più il debug lavoro da fare, ho apprezzato il promemoria di continuare a provare

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top