Skip to content

Commit 8ac7cb6

Browse files
authored
Merge pull request #127 from phenixphp/feature/add-log-level-support
Add debug level configuration for logging
2 parents 869eff0 + e0f05bc commit 8ac7cb6

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

src/Logging/LoggerFactory.php

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use Amp\Log\ConsoleFormatter;
1010
use Amp\Log\StreamHandler;
1111
use Monolog\Formatter\LineFormatter;
12+
use Monolog\Level;
1213
use Monolog\Logger;
1314
use Monolog\Processor\PsrLogMessageProcessor;
1415
use Phenix\Constants\ServerMode;
@@ -21,12 +22,16 @@ class LoggerFactory implements Makeable
2122
{
2223
public static function make(string $key, ServerMode $serverMode = ServerMode::SINGLE): Logger
2324
{
25+
/** @var int|string|null $levelConfig */
26+
$levelConfig = Config::get('app.debug_level');
27+
$level = Level::tryFrom((int) $levelConfig) ?? Level::Debug;
28+
2429
if ($serverMode === ServerMode::CLUSTER && Cluster::isWorker()) {
25-
$logHandler = Cluster::createLogHandler();
30+
$logHandler = Cluster::createLogHandler($level);
2631
} else {
2732
$logHandler = match ($key) {
28-
'file' => self::fileHandler(),
29-
'stream' => self::streamHandler(),
33+
'file' => self::fileHandler($level),
34+
'stream' => self::streamHandler($level),
3035
default => throw new RuntimeError("Unsupported logging channel: {$key}"),
3136
};
3237
}
@@ -37,16 +42,16 @@ public static function make(string $key, ServerMode $serverMode = ServerMode::SI
3742
return $logger;
3843
}
3944

40-
private static function streamHandler(): StreamHandler
45+
private static function streamHandler(Level $level): StreamHandler
4146
{
42-
$logHandler = new StreamHandler(ByteStream\getStdout());
47+
$logHandler = new StreamHandler(ByteStream\getStdout(), $level);
4348
$logHandler->pushProcessor(new PsrLogMessageProcessor());
4449
$logHandler->setFormatter(new ConsoleFormatter());
4550

4651
return $logHandler;
4752
}
4853

49-
private static function fileHandler(): StreamHandler
54+
private static function fileHandler(Level $level): StreamHandler
5055
{
5156
$path = Config::get('logging.path');
5257

@@ -56,7 +61,7 @@ private static function fileHandler(): StreamHandler
5661

5762
$file = File::openFile($path, 'a');
5863

59-
$logHandler = new StreamHandler($file);
64+
$logHandler = new StreamHandler($file, $level);
6065
$logHandler->pushProcessor(new PsrLogMessageProcessor());
6166
$logHandler->setFormatter(new LineFormatter());
6267

tests/fixtures/application/config/app.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
*/
5252
'server_mode' => env('APP_SERVER_MODE', static fn (): string => 'single'),
5353
'debug' => env('APP_DEBUG', static fn (): bool => true),
54+
'debug_level' => env('APP_DEBUG_LEVEL', static fn (): int => 100),
5455
'locale' => 'en',
5556
'fallback_locale' => 'en',
5657
'middlewares' => [

0 commit comments

Comments
 (0)