log4php no funcionará correctamente
Pregunta
Así que he descubierto recientemente que el log4 * paquete estaba disponible para PHP y al ver esto con entusiasmo descargado la última versión de la página web log4php y siguió las instrucciones de instalación. Las instrucciones indican que uno es para descargar el paquete de alquitrán, untar, y coloque el siguiente directorio en un lugar de uno de elección: log4php / src / main / php
Por lo tanto copiar el contenido de log4php/src/main/php
en mi dir lib en lib / log4php.
En mi escritura, según sea necesario, que requiere la clase 'Logger.php' e indicó un archivo de propiedades para gestionar mis appenders. El archivo de propiedades, log4php.properties, se encuentra en mi sistema de archivos en "/home1/ioforgec/www/devlab/pnotes/config/log4php.properties".
Aquí está el contenido del archivo de registro:
#
# 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
Así que aquí es una copia de mi script que implementa (más o menos '' envuelve la funcionalidad 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);
}
}
?>
Con el fin de que esta prueba está funcionando correctamente, el siguiente script llama a la LogUtil.php mostrado arriba
#!/usr/bin/php
<?php
require_once("lib/utils/LogUtil.php");
LogUtil::logExample("example message");
?>
Así que, a pesar de la configuración del ejemplo registrador para dar formato a los mensajes como el mensaje normal, a pesar de la configuración del nivel del registrador a un máximo de FATAL, no sólo en la declaración registrador, sino también en el orden de umbral, la impresión a la consola me parece que el registrador raíz predeterminado:
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
Veo la sentencia print sin el formato normal como se especifica, y veo dos declaraciones de impresión, la impresión de depuración (que nunca debería haber impreso debido a la configuración de los mortales en la configuración del registrador - FATAL es mucho mayor que DEBUG)
¿Qué diablos estoy haciendo mal? He intentado todas las combinaciones de configuración que posiblemente se pueda imaginar. ¿Alguien tiene alguna sugerencia?
Editar - Actualización - Este sigue siendo un problema. No hay progreso.
Edit2 - ¿En serio? No tiene a nadie en este foro tratado de utilizar este paquete de registro muy popular y su encarnación como un módulo PHP?
He intentado todas las vías imaginables para tratar de obtener mi pregunta respondió, incluyendo la lista de correo del usuario log4php.
Solución
Después de muchas muchas más horas de manipular el archivo de configuración que he descubierto un pequeño hecho real, sin embargo, de importancia crítica. Con el fin de especificar un 'registrador' debe nombrarlo bajo la jerarquía 'logger' y sus appenders bajo el 'appender' jerarquía, etc, etc Por ejemplo:
# 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
Mi error fue ver el nombre de la jerarquía registrador de la raíz 'log4php.rootLogger' y suponiendo que con el fin de asignar un registrador necesidad de un único nombre de un valor para 'log4php.lognameLogger'. Lamentablemente esto no es excusa ya que era un ejemplo, enterrado, en la documentación. Supongo que para encontrarlo al 9+ horas es mejor que nada:)
Gracias a los que me recordaron que había más de depuración trabajo por hacer, me gustó el recordatorio para seguir intentando