WC_Logger::__construct( array $handlers = null, string $threshold = null )

Constructor for the logger.


Description Description


Parameters Parameters

$handlers

(Optional) Array of log handlers. If $handlers is not provided, the filter 'woocommerce_register_log_handlers' will be used to define the handlers. If $handlers is provided, the filter will not be applied and the handlers will be used directly.

Default value: null

$threshold

(Optional) Define an explicit threshold. May be configured via WC_LOG_THRESHOLD. By default, all logs will be processed.

Default value: null


Top ↑

Source Source

File: includes/class-wc-logger.php

	public function __construct( $handlers = null, $threshold = null ) {
		if ( null === $handlers ) {
			$handlers = apply_filters( 'woocommerce_register_log_handlers', array() );
		}

		$register_handlers = array();

		if ( ! empty( $handlers ) && is_array( $handlers ) ) {
			foreach ( $handlers as $handler ) {
				$implements = class_implements( $handler );
				if ( is_object( $handler ) && is_array( $implements ) && in_array( 'WC_Log_Handler_Interface', $implements, true ) ) {
					$register_handlers[] = $handler;
				} else {
					wc_doing_it_wrong(
						__METHOD__,
						sprintf(
							/* translators: 1: class name 2: WC_Log_Handler_Interface */
							__( 'The provided handler %1$s does not implement %2$s.', 'woocommerce' ),
							'<code>' . esc_html( is_object( $handler ) ? get_class( $handler ) : $handler ) . '</code>',
							'<code>WC_Log_Handler_Interface</code>'
						),
						'3.0'
					);
				}
			}
		}

		// Support the constant as long as a valid log level has been set for it.
		if ( null === $threshold ) {
			$threshold = Constants::get_constant( 'WC_LOG_THRESHOLD' );
			if ( null !== $threshold && ! WC_Log_Levels::is_valid_level( $threshold ) ) {
				$threshold = null;
			}
		}

		if ( null !== $threshold ) {
			$threshold = WC_Log_Levels::get_level_severity( $threshold );
		}

		$this->handlers  = $register_handlers;
		$this->threshold = $threshold;
	}


Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.