Files
wh-api/config/autoload/logger.php
ykxiao 0b2299c427
Some checks failed
Build Docker / build (push) Has been cancelled
协程版仓库后端项目
2025-07-08 14:59:47 +08:00

82 lines
2.1 KiB
PHP

<?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;