динамический путь к файлу в log4php - PullRequest
0 голосов
/ 05 июля 2011

Я новичок в log4php.

Я хотел бы сохранить журналы, такие как /logs/UserId/Info_ddmmyyyy.php.

Здесь UserId - это динамические данные.

Просто я бы хотел сохранить лог пользователя.

есть ли способ динамически изменить путь к файлу журнала

1 Ответ

5 голосов
/ 06 июля 2011

Это поведение не поддерживается по умолчанию.Но вы можете расширить 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;
}

В конце концов вам нужно использовать новый Appender в вашей конфигурации

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

Обратите внимание: вместо того, чтобы указывать полный путь к файлу журнала, теперь вам нужно добавить простое имя.Полный путь (включая имя пользователя) должен быть рассчитан с помощью метода getYourFullPath ().

Надеюсь, это поможет!Christian

...