在 LoggerRoot.php 中找不到“Logger”类
题
我正在尝试在一个非常简单的站点中安装 log4php (尝试了解它是如何工作的)。Apache 安装在 /etc/ 中,vhost 定义为:
DocumentRoot“/home/fferri/workspace/site-tutorial/www” servername tutorial.localhost php_value auto_prepend_file“/home/fferri/workspace/site-tutorial/site-tutorial/www/www/configuresite.php” site-tutorial/www/and log4php文件夹位于/home/fferri/workspace/site-tutorial/services/lib/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");