Skip to content

Instantly share code, notes, and snippets.

@stof
Created December 19, 2011 00:00
Show Gist options
  • Save stof/1494871 to your computer and use it in GitHub Desktop.
Save stof/1494871 to your computer and use it in GitHub Desktop.
Logging the controller action and the user
<?php
namespace Acme\UserBundle\EventListener;
use Symfony\Component\HttpKernel\Log\LoggerInterface;
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
use Symfony\Component\Security\Core\SecurityContextInterface;
class LoggerListener
{
private $securityContext;
private $logger;
public function __construct(SecurityContextInterface $securityContext, LoggerInterface $logger)
{
$this->securityContext = $securityContext;
$this->logger = $logger;
}
public function onKernelController(FilterControllerEvent $event)
{
$controller = $event->getController();
if (is_array($controller)) {
$controller = get_class($controller[0]).'::'.$controller[1];
} elseif (is_object($controller)) {
$controller = get_class($controller)
}
$user = '';
$token = $this->securityContext->getToken();
if (null !== $token) {
$user = (string) $token->getUser();
}
$logger->info('action: '.$controller.' user: '.$user);
}
}
services:
acme_user.logging_listener:
class: Acme\UserBundle\EventListener\LoggerListener
arguments: [@security.context, @logger]
tags:
- { name: kernel.event_listener, event: kernel.controller, method: onKernelController }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment