Я пытаюсь найти лучший способ настроить мой экземпляр Zend_Log_Writer_Stream для записи в имя файла относительно моего APPLICATION_PATH.
Например, со следующей конфигурацией:
resources.log.stream.writerName = "Stream"
resources.log.stream.writerParams.stream = "logs/production.log"
Обычный способ инициировать ваш loggger - использовать ресурс начальной загрузки приложения или выполнить следующее:
$logger = Zend_Log::factory($config->resources->log);
Проблема в том, что метод Zend_Log_Writer_Stream :: factory будет пытаться получить доступ к файлу относительно текущего выполнения скрипта, а не к APPLICATION_PATH.
Поскольку это почти всегда index.php внутри / public, который запускает это, обычно это не драма, однако, когда я выполняю отдельные скрипты в своих каталогах модульного тестирования, он будет использовать этот каталог для определения пути.
В идеале я хочу установить:
resources.log.stream.writerParams.stream = APPLICATION_PATH . "../logs/production.log"
Так что он всегда использует предсказуемое местоположение. Я бы предпочел не взламывать фабричный метод унаследованного от Zend_Log класса, чтобы сделать эту работу.
Мне бы очень хотелось услышать, как другие решили эту проблему.