diff --git a/Logger.php b/Logger.php index 39b7808..8d3832f 100644 --- a/Logger.php +++ b/Logger.php @@ -11,6 +11,11 @@ class Logger */ private $logger; + /** + * @var SanitizerInterface + */ + private $sanitizer; + /** * @var array */ @@ -43,14 +48,21 @@ class Logger /** * Constructor * - * @param LoggerInterface $logger - * @param array $allowedLevels - * @param array $ignoredMessages - * @param array $ignoredURLs + * @param LoggerInterface $logger + * @param SanitizerInterface $sanitizer + * @param array $allowedLevels + * @param array $ignoredMessages + * @param array $ignoredURLs */ - public function __construct(LoggerInterface $logger, array $allowedLevels, array $ignoredMessages = array(), array $ignoredURLs = array()) - { + public function __construct( + LoggerInterface $logger, + SanitizerInterface $sanitizer, + array $allowedLevels, + array $ignoredMessages = array(), + array $ignoredURLs = array() + ) { $this->logger = $logger; + $this->sanitizer = $sanitizer; $this->allowedLevels = $allowedLevels; $this->ignoredMessages = $ignoredMessages; $this->ignoredURLs = $ignoredURLs; @@ -81,7 +93,11 @@ public function write($level, $message, array $context = array()) } } - $this->logger->{$this->levelToMethod[$level]}($message, $context); + foreach ($context as $key => $value) { + $context[$key] = $this->sanitizer->sanitize($value); + } + + $this->logger->{$this->levelToMethod[$level]}($this->sanitizer->sanitize($message), $context); return true; } diff --git a/Resources/config/services.xml b/Resources/config/services.xml index bb437ef..0d66cbe 100644 --- a/Resources/config/services.xml +++ b/Resources/config/services.xml @@ -6,18 +6,22 @@ Nelmio\JsLoggerBundle\Logger + Nelmio\JsLoggerBundle\StringSanitizer Nelmio\JsLoggerBundle\TwigExtension + %nelmio_js_logger.allowed_levels% %nelmio_js_logger.ignore_messages% %nelmio_js_logger.ignore_url_prefixes% + + %nelmio_js_logger.stacktrace_js_path% diff --git a/SanitizerInterface.php b/SanitizerInterface.php new file mode 100644 index 0000000..94604af --- /dev/null +++ b/SanitizerInterface.php @@ -0,0 +1,12 @@ += 200 && req.status < 400) { @@ -56,7 +55,6 @@ function(stackframes) { if (typeof console !== 'undefined' && typeof console.log === 'function') { console.log('POST to $url failed with status: ' + req.status); } - throw new Error('POST to $url failed with status: ' + req.status); } } };