LoggerRoot.php中找不到“Logger”类

时间:2012-05-21 16:54:41

标签: php log4php

我正在尝试在一个非常简单的网站上安装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 个答案:

答案 0 :(得分:1)

我认为使用dirname(__FILE__)看起来会更好。

我还以为这将是路径...

然后可能是Class name defenition。你在Logger.php中调用new Logger吗?

如下:

include(LOG4PHP_DIR."/Logger.php");
$log = new Logger();
$log->info("foo");

答案 1 :(得分:1)

错误是将log4php-0.9和php5一起使用。下载位于apache web(2.1)中的库,问题就解决了。