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

エラーは、log4php-0.9 と php5 を一緒に使用することです。apache web (2.1) にあるライブラリをダウンロードすると、問題は解決します。

于 2012-05-22T13:19:50.623 に答える
1

使ってみると見栄えが良くなると思います dirname(__FILE__)

私もそれが道だと思っていました...

おそらくクラス名の定義でしょう。new LoggerLogger.phpを呼び出しますか?

次のようなものはどうですか:

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