我想使用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>
但是在调用侦听器时,日志文件中没有写入任何内容。
答案 0 :(得分:3)
您将两个不同的标签混合在一起。 monolog.logger
标记允许您使用自定义日志记录通道。听一个事件是一个完全独立的事情。请改用kernel.event_listener
标记名称。您可以看到完整的代码列表here。此外,如果calendar.load_events
是自定义事件,请务必使用核心事件调度程序将其分派到某处:@event_dispatcher
。