26 сентября 2011 г.

Zend_Log + application.ini + multiply logs

Понадобилось более сложная логика в Zend_Log и сразу хотелось сделать по хорошему, через application.ini
Удалось не всё =(


resources.log.timestampFormat = "d-m-Y H:i:s"

resources.log.main.writerName = "Stream"
resources.log.main.writerParams.stream = APPLICATION_PATH "/../logs/app.log"
resources.log.main.writerParams.mode = "a"
resources.log.main.filterName = "Priority"
resources.log.main.filterParams.priority = 5
resources.log.main.filterParams.operator = "<="

resources.log.ajax.writerName = "Stream"
resources.log.ajax.writerParams.stream = APPLICATION_PATH "/../logs/ajax.log"
resources.log.ajax.writerParams.mode = "a"
resources.log.ajax.filterName = "Priority"
resources.log.ajax.filterParams.priority = 8
resources.log.ajax.filterParams.operator = "="

В данном примере пишем сразу в 2 файла:
app.log будет содержать все сообщения, ниже уровня NOTICE (включительно)
ajax.log - соберёт все запросы с приоритетом 8. Это кастомный лог приорити, задать который пришлось в бутстрапе (такого функционала у ресурса приложения не оказалось).

Добавили свой приорити:

Copy Source | Copy HTML
  1. $this->bootstrap('log');

  2. $log = $this->getResource('log');

  3. $log->addPriority('ajax', 8); 




Пишем пару сообщений:

Copy Source | Copy HTML
  1. $log->crit('Добавится в app.log');

  2. $log->ajax('Добавится в ajax.log');

  3. $log->info('Никуда не запишется');





Комментариев нет: