This commit is contained in:
81
config/autoload/logger.php
Normal file
81
config/autoload/logger.php
Normal file
@ -0,0 +1,81 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of Hyperf.
|
||||
*
|
||||
* @link https://www.hyperf.io
|
||||
* @document https://hyperf.wiki
|
||||
* @contact group@hyperf.io
|
||||
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
use App\Log\AliSlsHandler;
|
||||
use App\Log\AppendRequestIdProcessor;
|
||||
use Monolog\Formatter\JsonFormatter;
|
||||
use Monolog\Formatter\LineFormatter;
|
||||
use Monolog\Handler\RotatingFileHandler;
|
||||
use Psr\Log\LogLevel;
|
||||
use function Hyperf\Support\env;
|
||||
|
||||
$env = env('APP_ENV', 'production');
|
||||
$isProduction = $env === 'production';
|
||||
$productionLogLevel = env('LOG_LEVEL', 'error');
|
||||
|
||||
$formatter = $isProduction
|
||||
? [
|
||||
'class' => JsonFormatter::class,
|
||||
'constructor' => [
|
||||
'format' => null,
|
||||
'dateFormat' => 'Y-m-d H:i:s',
|
||||
'allowInlineLineBreaks' => true,
|
||||
],
|
||||
]
|
||||
: [
|
||||
'class' => LineFormatter::class,
|
||||
'constructor' => [
|
||||
'format' => "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n",
|
||||
'dateFormat' => 'Y-m-d H:i:s',
|
||||
'allowInlineLineBreaks' => true,
|
||||
],
|
||||
];
|
||||
|
||||
$loggers = [
|
||||
'default', 'sql', 'request', 'crontab', 'queue', 'timer', 'job', 'some', 'amqp'
|
||||
];
|
||||
|
||||
$logLevel = $isProduction ? $productionLogLevel : LogLevel::INFO;
|
||||
|
||||
$config = [];
|
||||
|
||||
foreach ($loggers as $loggerName) {
|
||||
$handler = $isProduction
|
||||
? [
|
||||
'class' => AliSlsHandler::class,
|
||||
'constructor' => [
|
||||
'filename' => BASE_PATH . sprintf('/runtime/logs/%s/%s.log', $loggerName, $loggerName),
|
||||
'level' => $logLevel,
|
||||
'maxFiles' => 30,
|
||||
],
|
||||
]
|
||||
: [
|
||||
'class' => RotatingFileHandler::class,
|
||||
'constructor' => [
|
||||
'filename' => BASE_PATH . sprintf('/runtime/logs/%s/%s.log', $loggerName, $loggerName),
|
||||
'level' => $logLevel,
|
||||
'maxFiles' => 30,
|
||||
],
|
||||
];
|
||||
|
||||
$config[$loggerName] = [
|
||||
'handler' => $handler,
|
||||
'formatter' => $formatter,
|
||||
'processors' => [
|
||||
[
|
||||
'class' => AppendRequestIdProcessor::class,
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
return $config;
|
Reference in New Issue
Block a user