diff --git a/CHANGELOG.md b/CHANGELOG.md
index 69cf19ad399e87f5ee81bccfc1b3c6d5fcbbf921..e1afbaec383a9be136c2285dbfc4374b12cffa4b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,16 @@
+
+## [1.11.0] - 2022-11-28
+### Added
+- Inserted request id in log entries
+
+## [1.10.2] - 2022-11-15
+### Fixed
+- Deprecated error in PHP 8.X
+
+## [1.10.1] - 2022-10-01
+### Fixed
+- WC logger initialisation
+
 ## [1.10.0] - 2022-08-16
 ### Added
 - en_CA, en_GB translators
diff --git a/src/Settings.php b/src/Settings.php
index 07fa9788b75581684c2f736db2c6da716100f3cb..aa648ce8e7e77c40a93b6c6c5300a0a003037ab9 100644
--- a/src/Settings.php
+++ b/src/Settings.php
@@ -15,4 +15,15 @@ final class Settings {
 	/** @var bool */
 	public $use_wp_log = true;
 
+	/**
+	 * @param string $level
+	 * @param bool   $use_wc_log
+	 * @param bool   $use_wp_log
+	 */
+	public function __construct( string $level = LogLevel::DEBUG, bool $use_wc_log = true, bool $use_wp_log = true ) {
+		$this->level      = $level;
+		$this->use_wc_log = $use_wc_log;
+		$this->use_wp_log = $use_wp_log;
+	}
+
 }
diff --git a/src/SimpleLoggerFactory.php b/src/SimpleLoggerFactory.php
index c591f69dac40ea20da7c69ad332c24bba87ed48f..248a46c89e7ece93a3e4acd79ea3f0a54ad8e3fd 100644
--- a/src/SimpleLoggerFactory.php
+++ b/src/SimpleLoggerFactory.php
@@ -21,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 {
@@ -31,25 +35,40 @@ final class SimpleLoggerFactory implements LoggerFactory {
 			return $this->logger;
 		}
 
-		$logger = new Logger( $this->channel );
+		$this->logger = new Logger( $this->channel );
 
-		if ( $this->options->use_wc_log && \function_exists( 'wc_get_logger' ) ) {
-			$handler = new WooCommerceHandler( \wc_get_logger(), $this->channel );
+		if ( $this->options->use_wc_log ) {
+			if ( \function_exists( 'wc_get_logger' ) ) {
+				$this->create_wc_handler();
+			} else {
+				\add_action( 'woocommerce_init', [ $this, 'create_wc_handler' ] );
+			}
 		}
 
 		// Adding WooCommerce logger may have failed, if so add WP by default.
-		if ( $this->options->use_wp_log || empty( $logger->getHandlers() ) ) {
+		if ( $this->options->use_wp_log || empty( $this->logger->getHandlers() ) ) {
 			$handler = $this->get_wp_handler();
+			$handler->setFormatter( $this->get_formatter() );
+			$this->logger->pushHandler( $handler );
 		}
 
-		$request_id = uniqid('', true);
-		$handler->setFormatter(
-			new LineFormatter( "[%datetime%] %channel%.%level_name%: %message% %context% %extra%, requestId: $request_id" )
-		);
+		return $this->logger;
+	}
 
-		$logger->pushHandler( $handler );
+	/**
+	 * @internal
+	 */
+	public function create_wc_handler() {
+		while ( ! $this->options->use_wp_log && ! empty( $this->logger->getHandlers() ) ) {
+			$this->logger->popHandler();
+		}
+		$handler = new WooCommerceHandler( \wc_get_logger(), $this->channel );
+		$handler->setFromatter( $this->get_formatter() );
+		$this->logger->pushHandler( $handler );
+	}
 
-		return $this->logger = $logger;
+	private function get_formatter(): LineFormatter {
+		return new LineFormatter( "[%datetime%] %channel%.%level_name%: %message% %context% %extra%, requestId: $request_id" );
 	}
 
 	private function get_wp_handler(): HandlerInterface {
diff --git a/src/deprecated/wpdesk-logger-factory.php b/src/deprecated/wpdesk-logger-factory.php
index 1d2269c60bc7d877f6a2249e5fae88c52f85f06d..f50d2f8eedb2a2725ac5343d4db388c9f52fbffc 100644
--- a/src/deprecated/wpdesk-logger-factory.php
+++ b/src/deprecated/wpdesk-logger-factory.php
@@ -42,7 +42,7 @@ if ( ! class_exists( 'WPDesk_Logger_Factory' ) ) {
 		 *
 		 * @see http://php.net/manual/en/function.debug-backtrace.php
 		 */
-		public static function log_wp_error( WP_Error $e, array $backtrace ) {
+		public static function log_wp_error( WP_Error $e, array $backtrace = array() ) {
 			$message = 'Error: ' . get_class( $e ) . ' Code: ' . $e->get_error_code() . ' Message: ' . $e->get_error_message();
 
 			self::log_message_backtrace( $message, WPDesk_Logger::ERROR, $backtrace );
@@ -79,7 +79,7 @@ if ( ! class_exists( 'WPDesk_Logger_Factory' ) ) {
 		 * @param string $level Level of error.
 		 * @param array  $backtrace Backtrace information with snapshot of error env.
 		 */
-		public static function log_message_backtrace( $message, $level = WPDesk_Logger::DEBUG, array $backtrace ) {
+		public static function log_message_backtrace( $message, $level = WPDesk_Logger::DEBUG, array $backtrace = array() ) {
 			$message .= ' Backtrace: ' . json_encode( $backtrace );
 			if (isset($backtrace[ self::BACKTRACE_FILENAME_KEY ])) {
 				$filename = $backtrace[ self::BACKTRACE_FILENAME_KEY ];