Pergunta

Estou tentando instalar o log4php em um site bem simples (tentando aprender como funciona).O Apache é instalado em /etc/ e vhost é definido como:

Documentroot "/home/fferri/workspace/site-tutorial/www" servername tutorial.localhost php_value auto_prepend_file "/home/fferri/workspace/site-tutorial/wwwwwwwwwiguresite.php" Meu site está em///fferri/workspace/workspace/configuresite.php "meu site está em///fferri A pasta site-tutorial/www/log4php está em /home/fferri/workspace/site-tutorial/services/lib/log4php-0.9/src/log4php/

Então, eu defino

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

em ConfigureSite.php

E, em outro arquivo, tento iniciar o log4php:

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

O erro é sempre o mesmo:

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 dizer que LoggerRoot.php e Logger.php estão na mesma pasta.Acho que tenho um problema de caminhos porque meu servidor e meu site não estão na mesma pasta, mas preciso de uma dica

Adicionando o rastreamento completo da pilha de erro:

    [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

Então, primeiro, o Logger é encontrado, mas ao carregar o LoggerHierarchy, o Logger não é.Por que????

RESOLVIDO:O erro é usar log4php-0.9 e php5 juntos.Baixando a biblioteca localizada no apache web (2.1), o problema está resolvido.

Obrigado!

Foi útil?

Solução 2

O erro é usar log4php-0.9 e php5 juntos.Baixando a biblioteca localizada no apache web (2.1), o problema está resolvido.

Outras dicas

eu acho que usar dirname(__FILE__) ficará melhor.

Também pensei que seria o caminho...

Talvez a definição do nome da classe então.você ligou new Logger em Logger.php?

Que tal algo como:

include(LOG4PHP_DIR."/Logger.php");
$log = new Logger();
$log->info("foo");
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top