mooxphp/moox

View on GitHub
packages/core/src/Traits/LogLevel.php

Summary

Maintainability
A
1 hr
Test Coverage
<?php

namespace Moox\Core\Traits;

use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Log;

trait LogLevel
{
    protected function logDebug($message, array $context = [])
    {
        $this->log('debug', $message, $context);
    }

    protected function logInfo($message, array $context = [])
    {
        $this->log('info', $message, $context);
    }

    protected function log($level, $message, array $context = [])
    {
        $verboseLevel = Config::get('core.logging.verbose_level', 0);
        $logInProduction = Config::get('core.logging.log_in_production', false);

        if (
            ($verboseLevel > 0 && app()->environment() !== 'production') ||
            ($logInProduction && app()->environment() === 'production')
        ) {
            if (
                ($level === 'debug' && $verboseLevel >= 1) ||
                ($level === 'info' && $verboseLevel >= 2) ||
                $verboseLevel >= 3
            ) {
                Log::$level($message, $context);
            }
        }
    }
}