我想使用 Monolog 从 Symfony2 应用程序中的监听器写入日志。
我的监听器是这样定义的:
use Monolog\Logger;
class CalendarEventListener
{
private $logger;
public function __construct(Logger $logger)
{
$this->logger = $logger;
}
public function loadEvents(CalendarEvent $calendarEvent)
{
$this->logger->info('test');
...
}
}
这是在我的文件 src/CRMBundle/Resources/config/services.xml 中:
<services>
<service id="crmbundle.calendar_listener" class="CRMBundle\EventListener\CalendarEventListener">
<argument type="service" id="logger" />
<tag name="monolog.logger" event="calendar.load_events" method="loadEvents" />
</service>
</services>
但是当调用监听器时,日志文件中没有写入任何内容。
最佳答案
您将两个不同的标签混合在一起。 monolog.logger
标签允许您使用自定义日志记录 channel 。监听事件是完全不同的事情。请改用 kernel.event_listener
标记名称。您可以看到完整的标签列表here 。此外,如果calendar.load_events
是自定义事件,请务必使用核心事件调度程序将其调度到某个地方:@event_dispatcher
。
关于php - Symfony2 在监听器中使用记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31858983/