Pregunta

Estoy intentando instalar log4php en un sitio muy simple (tratando de aprender cómo funciona).Apache está instalado en /etc/ y vhost se define como:

DocumentRoot "/home/fferri/workspace/sitio-tutorial/www" tutorial de servername.localhost php_value auto_prepend_file "/home/fferri/workspace/site-tutorial/www/configuesite.php" Mi sitio está en/home/ffer/workspace////workpace/ Situtorial/www/y log4php La carpeta es en /home/fferri/workspace/site-tutorial/services/lib/log4php-0.9/src/log4php/

Entonces defino

define('LOG4PHP_DIR', "/home/fferri/workspace/site-tutorial/services/lib/log4php-0.9/src/log4php/");

en ConfigureSite.php

Y, en otro archivo, intento iniciar log4php:

include(LOG4PHP_DIR."/Logger.php");
$log = Logger::getLogger("main");
$log->info("foo");
$log->warn("bar");

El error es siempre el mismo:

Fatal error: Class 'Logger' not found in /home/fferri/workspace/site-tutorial/services/lib/log4php-0.9/src/log4php/LoggerRoot.php on line 37

Vale la pena decir que LoggerRoot.php y Logger.php están en la misma carpeta.Creo que tengo un problema de rutas porque mi servidor y mi sitio no están en la misma carpeta, pero necesito alguna pista.

Agregar el seguimiento completo del error de la pila:

    [22-May-2012 11:34:38] PHP Fatal error:  Class 'Logger' not found in /home/fferri/workspace/site-tutorial/services/lib/log4php-0.9/src/log4php/LoggerRoot.php on line 36
[22-May-2012 11:34:38] PHP Stack trace:
[22-May-2012 11:34:38] PHP   1. {main}() /home/fferri/workspace/site-tutorial/www/index.php:0
[22-May-2012 11:34:38] PHP   2. require_once() /home/fferri/workspace/site-tutorial/www/index.php:12
[22-May-2012 11:34:38] PHP   3. require_once() /home/fferri/workspace/site-tutorial/www/greet_at_opening.php:11
[22-May-2012 11:34:38] PHP   4. require_once() /home/fferri/workspace/site-tutorial/services/lib/log4php-0.9/src/log4php/Logger.php:24
[22-May-2012 11:34:38] PHP   5. require_once() /home/fferri/workspace/site-tutorial/services/lib/log4php-0.9/src/log4php/LoggerCategory.php:27
[22-May-2012 11:34:38] PHP   6. require_once() /home/fferri/workspace/site-tutorial/services/lib/log4php-0.9/src/log4php/spi/LoggerLoggingEvent.php:28
[22-May-2012 11:34:38] PHP   7. require_once() /home/fferri/workspace/site-tutorial/services/lib/log4php-0.9/src/log4php/LoggerManager.php:29
[22-May-2012 11:34:38] PHP   8. require_once() /home/fferri/workspace/site-tutorial/services/lib/log4php-0.9/src/log4php/LoggerHierarchy.php:28

Entonces, primero, se encuentra Logger, pero al cargar LoggerHierarchy, no se encuentra Logger.¿¿¿¿Por qué????

SOLUCIONADO:El error es utilizar log4php-0.9 y php5 juntos.Descargando la librería ubicada en apache web (2.1), se soluciona el problema.

¡Gracias!

¿Fue útil?

Solución 2

El error es usar log4php-0.9 y PHP5 juntos.Descarga de la biblioteca ubicada en Apache Web (2.1), el problema se resuelve.

Otros consejos

creo que usando dirname(__FILE__) se verá mejor.

También pensé que sería el camino...

Quizás entonces la definición del nombre de la clase.llamas new Logger en Logger.php?

¿Qué tal algo como:

include(LOG4PHP_DIR."/Logger.php");
$log = new Logger();
$log->info("foo");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top