0

我正在尝试在一个非常简单的站点中安装 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)中的库,问题就解决了。

谢谢!

4

2 回答 2

1

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

我还以为是路...

那么可能是类名定义。你new Logger在 Logger.php 中调用吗?

怎么样的东西:

include(LOG4PHP_DIR."/Logger.php");
$log = new Logger();
$log->info("foo");
于 2012-05-22T09:49:42.720 回答
1

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

于 2012-05-22T13:19:50.623 回答