diff --git a/4dev/tests/Logging/CoreLibsLoggingLoggingTest.php b/4dev/tests/Logging/CoreLibsLoggingLoggingTest.php index f98e67d4..e60efc52 100644 --- a/4dev/tests/Logging/CoreLibsLoggingLoggingTest.php +++ b/4dev/tests/Logging/CoreLibsLoggingLoggingTest.php @@ -691,6 +691,11 @@ final class CoreLibsLoggingLoggingTest extends TestCase ); } + /** + * Undocumented function + * + * @return array + */ public function providerLoggingLevelWrite(): array { return [ @@ -796,6 +801,39 @@ final class CoreLibsLoggingLoggingTest extends TestCase ); } + // check log level that writer writes in correct level + // also that non debug ignores prefix/group + + /** + * Undocumented function + * + * @covers ::log + * @testdox log() general call test + * + * @return void + */ + public function testLoggingLog(): void + { + // init logger + $log = new \CoreLibs\Logging\Logging([ + 'log_file_id' => 'testLoggingLog', + 'log_folder' => self::LOG_FOLDER, + 'log_per_level' => true, + ]); + $log_ok = $log->log(Level::Debug, 'DEBUG', group_id: 'GROUP_ID', prefix: 'PREFIX:'); + $this->assertTrue($log_ok, 'assert ::log (debug) OK'); + $this->assertEquals( + $log->getLogFile(), + $log->getLogFileId() . '_DEBUG.log' + ); + $log_ok = $log->log(Level::Info, 'INFO', group_id: 'GROUP_ID', prefix: 'PREFIX:'); + $this->assertTrue($log_ok, 'assert ::log (info) OK'); + $this->assertEquals( + $log->getLogFile(), + $log->getLogFileId() . '_INFO.log' + ); + } + // must test flow: // init normal // log -> check file name diff --git a/www/lib/CoreLibs/Logging/Logging.php b/www/lib/CoreLibs/Logging/Logging.php index ad9feed8..4dd2f99f 100644 --- a/www/lib/CoreLibs/Logging/Logging.php +++ b/www/lib/CoreLibs/Logging/Logging.php @@ -910,6 +910,42 @@ class Logging // MAIN CALLS // ********************************************************************* + /** + * Commong log interface + * + * extended with group_id, prefix that are ONLY used for debug level + * + * @param Level $level + * @param string|\Stringable $message + * @param mixed[] $context + * @param string $group_id + * @param string $prefix + * @return bool + */ + public function log( + Level $level, + string|\Stringable $message, + array $context = [], + string $group_id = '', + string $prefix = '', + ): bool { + // if we are not debug, ignore group_id and prefix + if ($level != Level::Debug) { + $group_id = ''; + $prefix = ''; + } + return $this->writeErrorMsg( + $level, + $this->prepareLog( + $level, + $prefix . $message, + $context, + $group_id + ), + $group_id + ); + } + /** * DEBUG: 100 * @@ -927,8 +963,8 @@ class Logging public function debug( string $group_id, string|\Stringable $message, - string $prefix = '', - array $context = [] + array $context = [], + string $prefix = '' ): bool { return $this->writeErrorMsg( Level::Debug,