Application.ini içinde Zend_Log

4 Cevap php

nasıl application.ini gelen zend günlüğüne kurulumu örneği için herhangi bir örnek var mı? Ben sadece bir dosyaya giriş için bir örnek bulduk, ama ben bir SQLite veritabanı tabloya giriş istiyorsun?

Zend Log resource

4 Cevap

İyi bir soru. Ben bir önyükleme yapılandırma gelen Zend_Log_Writer_Db örneğini için bir yol bulamıyorum. Yazar sınıfı Zend_Db_Adapter nesnesi gerektirir. Bu bir dize kabul etmez.

ZF proje daha bu kullanım davayı geliştirmesi gerekmektedir. Onlar bile Db yazar include Zend_Application_Resource_Log için herhangi bir ünite testleri yoktur.

Ben o kadar önerebilirsiniz iyi sen Özyükleme sınıfı _initLog() yönteminde Log kaynak özelleştirmek gerekiyor.

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);
    }
  }

}

Burada manual: Eğer ne demek database.Is içine log dosyası yazmak için nasıl bir örnek bulabilirim?

Bu çalışması gerekir - Ben (şimdi benim dev makine değil) tam sonra test edecek

Zend_Application_Resource_Log kurulum application.ini bir Zend_Log bir örneğini olabilir

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"  

ZF 1.10alpha (en azından) bu yana, aşağıdaki gerçek olmuştur.

// e.g. 1 - works
resources.log.firebug.writerName = "Firebug"
// e.g. 2 - fails
resources.log.writerName = "Firebug"

NOT: keyfi dizi anahtarı 'kundakçı'. Zend_Log fabrika kaynağın günlük geneli üzerinde yayıklar zaman örneği 2 basitçe (bir istisna tetikleme) bir dize geçecek iken, örnek 1, Zend_Log-> addWriter bir dizi () (_constructWriterFromConfig tetikleme () yöntemi) olarak geçilecek.

(Ben bu eski olduğunu biliyorum, ve ben bir Kundakçı logger örnek kullanıyorum ama aynı tüm günlük yazarlar için geçerlidir)