2012-09-07 2 views
1

Я пишу свой собственный Zend_log и испытываю трудности в следующем. Я должен генерировать модульные журналы, которые я могу, но с этим я также создаю глобальное приложение application.log! которые я не хочу ..Zend_log создать два файла журнала

В моей Application.ini

resources.log.stream.writerName = "Stream" 
resources.log.stream.writerParams.stream = APPLICATION_PATH "/../logs/application.log" 

У меня есть загрузочный код

if ($this->hasPluginResource("log")) 
     { 
      $r = $this->getPluginResource("log"); 
      $log = $r->getLog(); 
      Zend_Registry::set('log',$log); 
     } 

В моем классе Logger я пытаюсь над записью _stream так, что когда Log является написано Оно всегда записывается в один файл .code следующим образом:

$writerArr=array('stream'=>$logfile,'mode'=>'a'); 
$writer = Zend_Log_Writer_Stream::factory($writerArr); 

Но поскольку я представил приложение ion.log в файле конфигурации всегда создает application.log! ...

Я хочу переписать этот поток, но не могу понять, как это сделать? Любой метод, который гарантирует, что есть только один писатель/поток для записи в? ...

Или мне рекомендуется удалить код приложения.ini и bootstrap, но тогда я не смогу записать ErrorController.php error ...

Я надеялся на решение, что «application.log» для ошибок, вызванных ErrorController.php и для ошибки приложения Я хотел, чтобы мой класс Logger регистрировал ошибку ... но я не могу обеспечить единственную поток за один раз ...

Любые подсказки?

С уважением,

+0

Я верю в эту строку 'resources.log.stream.writerParams.stream = APPLICATION_PATH" /../ logs/application.log "' не помогает – Michael

+0

Если я удалю эту строку, я получаю Error - Fatal error: Uncaught exception ' Zend_Log_Exception 'с сообщением' "" невозможно открыть с помощью режима «a» в C: \ wamp \ www \ demo \ library \ Zend \ Log \ Writer \ Stream.php в строке 81 – user269867

ответ

0

Попробуйте удалить весь Application.ini кода и сделать Zend_Log инициализации в самой начальной загрузке:

$writer = new Zend_Log_Writer_Stream('[/your/log/file/path]', '[file_open_mode]'); 
$logger = new Zend_Log($writer); 

Лучше всего, если вы инициализация писателя, когда вы знаете, в каком месте вы будете писать и после который инициализирует сам журнал.

+0

Я удалил код приложения.ini и bootstrap и продолжал писать в моей функции Logger, которая является единственным вариантом, который у меня есть. В любом случае, я могу обрабатывать application.log для регистрации сообщений ErrorController.php глобально в одном файле, где в качестве ведения журнала уровня модуля с моим классом Logger ... – user269867

 Смежные вопросы

  • Нет связанных вопросов^_^