Как зарегистрировать Zend_Log в начальной загрузке ZF 1.8 + приложение?

jQuery не предлагает это. Но Прототип делает, через Class.create.

13
задан Grant Palin 5 May 2011 в 16:52
поделиться

3 ответа

Самый простой - использовать Zend_Registry для хранения журнала

. Используйте это внутри своего загрузочного файла

Zend_Registry::set('log', $log);

и используйте его для получения журнала

Zend_Registry::get('log')
7
ответ дан 2 December 2019 в 00:18
поделиться

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

Из index.php (на ZF 1.62) я вызываю статический метод из класс в моей библиотеке, он определяет, находитесь ли вы в разработке или выше, а затем предоставляет вам соответствующий регистратор. В dev он будет регистрироваться в Firebug, на этапе + он будет регистрироваться в файле ... Я планирую добавить аварийный регистратор, который будет отправлять уведомления по электронной почте о плохих событиях, таких как неудачный запрос, который может указывать на попытку ввести в дБ ...

Затем в моем базовом Контроллере, от которого происходят все контроллеры, я вызываю регистратор. Таким образом, все действия нуждаются в одной строке для взаимодействия с регистратором ... например, $ this -> _ logger-> debug ('test');

Сохранение одной строки может показаться неважным, но когда вы просто выплевывая отладочные сообщения, которые вы планируете удалить через минуту, это '

1
ответ дан 2 December 2019 в 00:18
поделиться

Может быть, так;

/*
 * In case of need to change Log object
 * 
 * $options['writer'] = Zend_Log_Writer_...();
 * 
 * @param array $options Configuration options
 */
protected function _initLog(array $options = array())
{
    $writer = new Zend_Log_Writer_Null();

    if(array_key_exists('writer', $options))
    {
        if($options['writer'] instanceof Zend_Log_Writer_Abstract)  {
            $writer = $options['writer'];
        }
        else    {
            if(class_exists($options['writer']))    {
                $writer = new $options['writer'];
            }
            else    {
                throw new H2B_Exception("Writer class not found", H2B_Messages_Generic::OBJECT_NOT_FOUND);
            }
        }
    }

    $logger = new Zend_Log($writer);

    return $logger;
}
2
ответ дан 2 December 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: