1

実行しているphpと同じ名前で、拡張子が.logのログファイルに書き込みたいグローバルlogDataメソッドを作成しているとします。

このロギングを親phpに含めているのは、*親ファイル名が何であれ(それが置かれているtools.php libではない)ログファイルに常に書き込むようにするためです。

だから、私は/some/arbitrary/directory/parent.phpを持っています

これは

include( "/path/to/my/php/libs/tools.php");

しかし、tools.phpにあるloggingメソッドを実行すると、次のファイルにログが記録されます。

/path/to/my/php/libs/tools.php.log

/some/arbitrary/directory/parent.php.logではなく(これが私が欲しいものです)。

私は__FILE__このように動作しているものを使用しています(おそらく意図したとおりに)。親のファイル名を取得して、これを意図したとおりに機能させるためのコマンドはありますか?または、正しい出力ファイルに書き込むために、親phpからメソッドにパラメーターとしてFILEを渡す必要がありますか?

TIA

4

3 に答える 3

5

おそらく$_SERVER["SCRIPT_FILENAME"]を使用できます

于 2012-06-04T03:59:50.823 に答える
2

debug_backtrace()は、必要なものを提供します。

http://php.net/manual/en/function.debug-backtrace.php

于 2012-06-04T03:58:11.573 に答える
0

__FILE__ログクラスに渡す必要があります。

何かのようなもの:

// file:/some/arbitrary/directory/parent.php
$logger = new Logger(__FILE__);


// file:/path/to/my/php/libs/tools.ph
public function __construct($file) {
  // But it is not good idea to save log file same with php files.
  $this->log_path = $file.'.log';
}
于 2012-06-04T03:59:33.280 に答える