1

私はlog4phpが初めてです。

動的データである形式/logs/UserId/Info_ddmmyyyy.php でログ ファイルを保存したいと考えています。UserId

(基本的には1ユーザーにつき1つのログを保存したいです。)

ログ ファイルのパスを動的に変更する方法はありますか?

4

1 に答える 1

5

この動作はデフォルトではサポートされていません。ただし、LoggerAppenderFile (または好みに関係なく RollingFile、DailyFile) を拡張して、それをサポートすることができます。

そのための独自のクラスを作成し、スクリプトにロードします。

次に、このクラスから拡張します: http://svn.apache.org/repos/asf/logging/log4php/trunk/src/main/php/appenders/LoggerAppenderFile.php

class MyAppender extends LoggerAppenderFile { ... }

次のように、setFile() メソッドを上書きする必要があります。

public function setFile($file) {
    $path = getYourFullPath();
    $this->file = $path.$file;
}

結局のところ、構成で新しいアペンダーを使用する必要があります

log4php.appender.myAppender = MyAppender
log4php.appender.myAppender.layout = LoggerLayoutSimple
log4php.appender.myAppender.file = my.log

ログ ファイルへのフル パスを指定する代わりに、プレーンな名前を追加する必要があることに注意してください。完全パス (ユーザー名を含む) は getYourFullPath() メソッドで計算する必要があります。

それが役立つことを願っています! キリスト教徒

于 2011-07-06T08:17:59.573 に答える