3

在 Java 中,我使用log4J,它是一个日志框架。在 Log4j 中,您可以执行以下操作:

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

5 回答 5

5

就像是

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

应该做。

于 2009-03-13T15:38:36.150 回答
3

你应该检查Monolog的用法

于 2014-07-29T12:45:54.820 回答
0

您也可以尝试:sfConfig::get('sf_logging_enabled'). 它显示是否启用了日志记录。可以在 factory.yml 中配置级别。

于 2013-05-07T05:38:53.000 回答
0

您可以通过以下方式检查是否处于调试模式:

if ($this->get('kernel')->isDebug()) {
    ...
}

这是有关记录器服务https://symfony.com/doc/2.8/components/console/logger.htmlhttp://symfony.com/doc/current/cookbook/logging/index.html的信息

于 2016-03-10T14:35:42.347 回答
0

如果您在控制器中,您可以使用 symfony 记录器服务,您可以使用以下代码调用此服务:

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

如果你想改进你的系统,你可以查看 MonologBu​​ndle http://symfony.com/doc/current/logging.html

于 2016-07-28T21:35:00.333 回答