Zend Framework Fórum
09. Září 2010, 02:24:02 *
Vítej, Host. Prosím přihlaš se nebo se zaregistruj.
Nedostal jsi svůj aktivační email?

Přihlaš se uživatelským jménem, heslem a délkou sezení
Novinky: Aktuální verze Zend Frameworku je 1.10.8 z 25.8.2010 [oznámení]

http://www.zendframework.cz/.

Veškerý PHP kód dávejte mezi tagy [php] a [/php], aby byl obarvený a přehlednější.
 
   Domů   Nápověda Vyhledávání Přihlásit Registrovat  
Stran: [1]
  Tisk  
Autor Téma: Snad spravne pouziti Zend_Logu  (Přečteno 578 krát)
meldik
ZF User
*
Offline Offline

Příspěvků: 62


« kdy: 04. Květen 2010, 01:53:45 »

Ahoj,

prosim vas o radu/kontrolu ... Mam toto spravne napsane?

class JMLib_Core_Action extends Zend_Controller_Action
{
    protected 
$_logger;

    public function 
log($message$priority)
    {
        
$this->_logger = new Zend_Log();
        
$writer = new Zend_Log_Writer_Stream(JMLib_Application::getInstance()->getAppPath('LOG') . '/error_log.log');
        
$this->_logger->addWriter($writer);
        return 
$this->_logger->log($message$priority);
	

    }
}

S tim, ze pak pouziti mam v controleru jako

class JMLib_Com_AdminController extends JMLib_Core_Action
{
    public function 
noneAction()
    {
        
$this->log($message3);
    }
}
Zaznamenáno

Kevujin
ZF User
*
Offline Offline

Příspěvků: 67


« Odpověď #1 kdy: 04. Květen 2010, 10:13:42 »

Ahoj,

prosim vas o radu/kontrolu ... Mam toto spravne napsane?

class JMLib_Core_Action extends Zend_Controller_Action
{
    protected 
$_logger;

    public function 
log($message$priority)
    {
        
$this->_logger = new Zend_Log();
        
$writer = new Zend_Log_Writer_Stream(JMLib_Application::getInstance()->getAppPath('LOG') . '/error_log.log');
        
$this->_logger->addWriter($writer);
        return 
$this->_logger->log($message$priority);
	

    }
}

tak se podívej, co to vlastně dělá. při každým zavolání metody log vytváříš všechno znovu. vezmi si, že tu metodu log zavoláš třeba víckrát a pokaždý znovu inicializuješ proměnnou _logger. to asi není úplně správně, co? inicializuj ji jen jednou.

class JMLib_Core_Action extends Zend_Controller_Action
{
    protected 
$_logger null;

    public function 
log($message$priority)
    {
        if (
null === $this->_logger) {
          
$this->_logger = new Zend_Log();
          
$writer = new Zend_Log_Writer_Stream(JMLib_Application::getInstance()->getAppPath('LOG') . '/error_log.log');
          
$this->_logger->addWriter($writer);
        }
        
        return 
$this->_logger->log($message$priority);
	

    }
}
Zaznamenáno
meldik
ZF User
*
Offline Offline

Příspěvků: 62


« Odpověď #2 kdy: 04. Květen 2010, 10:24:37 »

To jsem si vůbec neuvědomil. Děkuji moc.
Zaznamenáno

Sniper
ZF User
*
Offline Offline

Příspěvků: 13


« Odpověď #3 kdy: 04. Květen 2010, 16:10:29 »

a mozna jeste lepsi je to nedavat do controlleru ale udelat si budto plugin nebo v bootstrapu _initLog metodu, kde si vytvoris ten objekt logu a ulozis ho do Zend_Registry. Pak ho totiz muzes pouzivat i v modelu apod. a ne jenom v instancich tvojeho upravenyho kontroleru a potomcich. Zrovna na tohle mi prijde Zend_Registry idealni
Zaznamenáno
Stran: [1]
  Tisk  
 
Skočit na:  

Poháněno MySQL Poháněno PHP Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC Validní XHTML 1.0! Validní CSS!