Test project for media files management.
<?php
namespace Illuminate\Log;
use InvalidArgumentException;
use Monolog\Level;
trait ParsesLogConfiguration
{
/**
* The Log levels.
*
* @var array
*/
protected $levels = [
'debug' => Level::Debug,
'info' => Level::Info,
'notice' => Level::Notice,
'warning' => Level::Warning,
'error' => Level::Error,
'critical' => Level::Critical,
'alert' => Level::Alert,
'emergency' => Level::Emergency,
];
/**
* Get fallback log channel name.
*
* @return string
*/
abstract protected function getFallbackChannelName();
/**
* Parse the string level into a Monolog constant.
*
* @param array $config
* @return int
*
* @throws \InvalidArgumentException
*/
protected function level(array $config)
{
$level = $config['level'] ?? 'debug';
if (isset($this->levels[$level])) {
return $this->levels[$level];
}
throw new InvalidArgumentException('Invalid log level.');
}
/**
* Parse the action level from the given configuration.
*
* @param array $config
* @return int
*
* @throws \InvalidArgumentException
*/
protected function actionLevel(array $config)
{
$level = $config['action_level'] ?? 'debug';
if (isset($this->levels[$level])) {
return $this->levels[$level];
}
throw new InvalidArgumentException('Invalid log action level.');
}
/**
* Extract the log channel from the given configuration.
*
* @param array $config
* @return string
*/
protected function parseChannel(array $config)
{
return $config['name'] ?? $this->getFallbackChannelName();
}
}