Класс 'Logger' не найден в LoggerRoot.php

Я пытаюсь установить log4php на очень простой сайт (пытаюсь узнать, как это работает). Apache установлен в / etc /, а vhost определен как:

DocumentRoot "/home/fferri/workspace/ site-tutorial / www" ServerName tutorial.localhost php_value auto_prepend_file "/home/fferri/workspace/site-tutorial/www/ConfigureSite.php" Мой сайт находится в /home/fferri/workspace/ папка site-tutorial / www / и log4php находится по адресу /home/fferri/workspace/site-tutorial/services/lib/log4php-0.9/src/log4php/

Затем я определяю

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

в ConfigureSite.php

И, в другой файл, я пытаюсь инициализировать log4php:

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

Ошибка всегда одна и та же:

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

Стоит сказать, что LoggerRoot.php и Logger.php находятся в одной папке. Я думаю, что у меня проблема с путями, потому что мой сервер и мой сайт не находятся в одной папке, но мне нужна подсказка

Добавление полной трассировки стека ошибок:

    [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

Итак, во-первых, Logger найден, но при загрузке LoggerHierarchy, Logger нет. Зачем????

Решено: ошибка в использовании log4php-0.9 и php5 вместе. Скачивая библиотеку, расположенную в apache web (2.1), проблема решена.

Спасибо!

2 ответа

Решение

Ошибка в том, чтобы использовать log4php-0.9 и php5 вместе. Скачивая библиотеку, расположенную в apache web (2.1), проблема решена.

Я думаю, используя dirname(__FILE__) будет выглядеть лучше

Я тоже думал, что это будет путь...

Может быть, тогда определение имени класса. ты звонишь new Logger в Logger.php?

Как насчет чего-то вроде:

include(LOG4PHP_DIR."/Logger.php");
$log = new Logger();
$log->info("foo");
Другие вопросы по тегам