2009-03-13 16 views
3

In Java verwende ich log4J das ist ein Protokollierungsframework. In Log4j können Sie etwas tun:Symfony Logging

if (log.isDebug()) { 
    // do some expensive operation that should only be displayed if DEBUG is turned on 
} 

einige Symfony Beispiele Lesen, ich bin nicht in der Lage, einen Weg zu finden, um zu bestimmen, ob die Debug-Protokollierung in der aktuellen Klasse Kontext aktiviert wird. Gibt es eine Möglichkeit, dies zu tun?

if (--need something here--) { 
    $this->logMessage('Expensive operation return value: '.expensiveFunction(), 'debug'); 
} 
+0

Alternativly kann die Log-Anweisung geschrieben werden als: $ this-> getLogger() -> debug ("Teure Betrieb Rückgabewert: '.expensiveFunction()); –

Antwort

5

so etwas wie

$this->getLogger()->getLogLevel() == sfLogger::DEBUG 

tun sollten.

+0

Danke, ich werde dies als Leitfaden verwenden: http://www.symfony-project.org/api/1_2/sfLogger –

0

Sie könnten auch versuchen: sfConfig::get('sf_logging_enabled'). Es zeigt, ob die Protokollierung aktiviert ist. Die Ebenen können in factories.yml konfiguriert werden.

0

Sie den symfony verwenden können Logger-Service Wenn Sie in einem Controller sind, können Sie diesen Service mit diesem Code aufrufen:

if ($this->get('kernel')->isDebug()) { 
$this->get('logger')->err('my custom message'); 
} 

Wenn Sie Ihr System verbessern möchten, können yo überprüfen MonologBundle http://symfony.com/doc/current/logging.html