Skip to content
Snippets Groups Projects

feat: add request id to logs

Closed Bartek Jaskulski requested to merge feat/request-id into master
2 files
+ 21
9
Compare changes
  • Side-by-side
  • Inline

Files

+ 17
9
@@ -3,6 +3,7 @@ declare( strict_types=1 );
namespace WPDesk\Logger;
use Monolog\Formatter\LineFormatter;
use Monolog\Handler\HandlerInterface;
use Monolog\Handler\NullHandler;
use Monolog\Logger;
@@ -20,9 +21,13 @@ final class SimpleLoggerFactory implements LoggerFactory {
/** @var Logger */
private $logger;
/** @var string */
private $request_id;
public function __construct( string $channel, Settings $options = null ) {
$this->channel = $channel;
$this->options = $options ?? new Settings();
$this->channel = $channel;
$this->options = $options ?? new Settings();
$this->request_id = uniqid('', true);
}
public function getLogger( $name = null ): Logger {
@@ -42,7 +47,9 @@ final class SimpleLoggerFactory implements LoggerFactory {
// Adding WooCommerce logger may have failed, if so add WP by default.
if ( $this->options->use_wp_log || empty( $this->logger->getHandlers() ) ) {
$this->logger->pushHandler( $this->get_wp_handler() );
$handler = $this->get_wp_handler();
$handler->setFormatter( $this->get_formatter() );
$this->logger->pushHandler( $handler );
}
return $this->logger;
@@ -55,12 +62,13 @@ final class SimpleLoggerFactory implements LoggerFactory {
while ( ! $this->options->use_wp_log && ! empty( $this->logger->getHandlers() ) ) {
$this->logger->popHandler();
}
$this->logger->pushHandler(
new WooCommerceHandler(
\wc_get_logger(),
$this->channel
)
);
$handler = new WooCommerceHandler( \wc_get_logger(), $this->channel );
$handler->setFromatter( $this->get_formatter() );
$this->logger->pushHandler( $handler );
}
private function get_formatter(): LineFormatter {
return new LineFormatter( "[%datetime%] %channel%.%level_name%: %message% %context% %extra%, requestId: $request_id" );
}
private function get_wp_handler(): HandlerInterface {
Loading