2009-03-13 6 views
3

В Java я использую log4J, который является основой ведения журнала. В Log4j вы можете сделать что-то вроде этого:Symfony Logging

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

Чтение некоторые примеры Symfony, я не могу найти способ, чтобы определить, является ли ведение журнала DEBUG активируется в контексте текущего класса. Есть ли способ сделать это?

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

Alternativly, утверждение журнала можно записать в виде: $ this-> getLogger() -> отладочный ('дорогостоящая операция возвращает значение: ».expensiveFunction()); –

ответ

5

что-то вроде

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

должен делать.

+0

Спасибо, я буду использовать это в качестве руководства: http://www.symfony-project.org/api/1_2/sfLogger –

0

Вы также можете попробовать: sfConfig::get('sf_logging_enabled'). Он показывает, разрешено ли ведение журнала. Уровни можно настроить на фабриках.yml.

0

вы можете использовать Symfony службы регистрации , если вы находитесь в контроллере, вы можете позвонить в эту службу, используя этот код:

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

Если вы хотите улучшить свою систему йо можно проверить MonologBundle http://symfony.com/doc/current/logging.html