diff --git a/composer.json b/composer.json index bb5d3229651325b645c745a2b960a305a8468bf1..d033a98f4c23295d217fe47bf23d7e7ad464ddd4 100644 --- a/composer.json +++ b/composer.json @@ -49,11 +49,13 @@ "wpdesk/wp-code-sniffer": "^1.3" }, "suggest": { - "wpdesk/wp-basic-requirements": "Enables your plugin to check an environment requirement before instantiation, e.g. PHP version or active plugins" + "wpdesk/wp-basic-requirements": "Enables your plugin to check an environment requirement before instantiation, e.g. PHP version or active plugins", + "wpdesk/wp-logs": "PSR-3 compatible logger with WooCommerce handler." }, "conflict": { "wpdesk/wp-basic-requirements": "<3 >=4", - "wpdesk/wp-wpdesk-license": "<4 >=5" + "wpdesk/wp-wpdesk-license": "<4 >=5", + "wpdesk/wp-logs": "<1.13 >=2" }, "scripts": { "test": "vendor/bin/phpunit --bootstrap tests/bootstrap.php ./tests" diff --git a/src/Extension/ConditionalExtension.php b/src/Extension/ConditionalExtension.php index 4d2a64ef225833b902bb9ba167dd11043d676700..9ae9c1469fe5de7fb2081f297b3b41dc5b096aef 100644 --- a/src/Extension/ConditionalExtension.php +++ b/src/Extension/ConditionalExtension.php @@ -5,10 +5,6 @@ declare(strict_types=1); namespace WPDesk\Init\Extension; use DI\Definition\Helper\AutowireDefinitionHelper; -use Monolog\Formatter\LineFormatter; -use Monolog\Logger; -use Monolog\Processor\PsrLogMessageProcessor; -use Monolog\Processor\UidProcessor; use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use WPDesk\Init\Binding\Loader\ArrayDefinitions; @@ -19,7 +15,7 @@ use WPDesk\Init\Extension\CommonBinding\RequirementsCheck; use WPDesk\Init\Extension\CommonBinding\WPDeskLicenseBridge; use WPDesk\Init\Extension\CommonBinding\WPDeskTrackerBridge; use WPDesk\Init\Plugin\Plugin; -use WPDesk\Logger\WC\WooCommerceHandler; +use WPDesk\Logger\SimpleLoggerFactory; class ConditionalExtension implements Extension { @@ -58,29 +54,17 @@ class ConditionalExtension implements Extension { $definitions[ WPDeskTrackerBridge::class ] = new AutowireDefinitionHelper(); } - if ( class_exists( \WPDesk\Logger\WC\WooCommerceHandler::class ) ) { - $definitions[ LoggerInterface::class ] = static function () use ( $plugin ) { - $logger = new Logger( - $plugin->get_slug(), - [], - [ new PsrLogMessageProcessor( null, true ), new UidProcessor() ] - ); - - $attach_handler = function () use ( $logger, $plugin ) { - $handler = new WooCommerceHandler( wc_get_logger(), $plugin->get_slug() ); - $handler->setFormatter( - new LineFormatter( '%channel%.%level_name% [%extra.uid%]: %message% %context% %extra%' ) - ); - $logger->pushHandler( $handler ); - }; - - if ( \function_exists( 'wc_get_logger' ) ) { - $attach_handler(); - } else { - \add_action( 'woocommerce_init', $attach_handler ); - } - - return $logger; + if ( class_exists( \WPDesk\Logger\SimpleLoggerFactory::class ) ) { + $definitions[ LoggerInterface::class ] = static function ( ContainerInterface $c ) { + $p = $c->get( Plugin::class ); + + return ( new SimpleLoggerFactory( + $p->get_slug(), + [ + 'level' => $c->has( 'logger.level' ) ? $c->get( 'logger.level' ) : 'debug', + 'action_level' => $c->has( 'logger.action_level' ) ? $c->get( 'logger.action_level' ) : null, + ] + ) )->getLogger(); }; }