Zend_Log в application.ini

есть ли какой-либо пример, как установить экземпляр журнала зенда из application.ini? Я только нашел пример для входа в файл, но я хочу войти в таблицу базы данных SQLITE?

Ресурс Журнала зенда

5
задан hakre 12 July 2012 в 17:36
поделиться

3 ответа

Хороший вопрос. Я не могу найти способа инстанцировать Zend_Log_Writer_Db из конфигурационного файла bootstrap. Классу записи требуется объект Zend_Db_Adapter. Он не принимает строку.

В проекте ZF необходимо дальнейшее развитие этого варианта использования. В нем даже нет юнит-тестов для Zend_Application_Resource_Log, включающих Db writer.

Лучшее, что я могу предложить до этого момента, это то, что вам, классу Bootstrap, необходимо настроить ресурс журнала в методе _initLog().

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{

  protected function _initDb()
  {
    if ($this->hasPluginResource("db")) {
      $r = $this->getPluginResource("db");
      $db = $r->getDbAdapter();
      Zend_Registry::set("db", $db);
    }
  }

  protected function _initLog()
  {
    if ($this->hasPluginResource("log")) {
      $r = $this->getPluginResource("log");
      $log = $r->getLog();

      $db = Zend_Registry::get("db");
      $writer = new Zend_Log_Writer($db, "log", ...columnMap...);
      $log->addWriter($writer);

      Zend_Registry::set("log", $log);
    }
  }

}
13
ответ дан 18 December 2019 в 10:45
поделиться

Здесь в manual: вы можете найти пример, как записать лог-файл в базу данных. Вы это имеете в виду?

.
1
ответ дан 18 December 2019 в 10:45
поделиться

Это должно сработать - я полностью протестирую позже (не на моей машине разработчика сейчас)

Zend_Application_Resource_Log может настроить экземпляр Zend_Log из application.ini

resources.log.writerName = "db"
resources.log.writerParams.db.adapter = "PDO_SQLITE"
resources.log.writerParams.db.dbname = APPLICATION_PATH "/../db/logdb.sqlite"
resources.log.writerParams.db.table = "log"  
1
ответ дан 18 December 2019 в 10:45
поделиться
Другие вопросы по тегам:

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