diff --git a/4dev/tests/Logging/CoreLibsLoggingErrorMessagesTest.php b/4dev/tests/Logging/CoreLibsLoggingErrorMessagesTest.php index 3c21d245..3393415d 100644 --- a/4dev/tests/Logging/CoreLibsLoggingErrorMessagesTest.php +++ b/4dev/tests/Logging/CoreLibsLoggingErrorMessagesTest.php @@ -96,9 +96,9 @@ final class CoreLibsLoggingErrorMessagesTest extends TestCase public function testErrorMessageLevelOk(string $level, string $str, string $expected): void { $log = new \CoreLibs\Logging\Logging([ - 'log_file_id' => 'testErrorMessages', + 'log_file_id' => 'testErrorMessagesLevelOk', 'log_folder' => self::LOG_FOLDER, - 'log_level' => Level::Debug, + 'log_level' => Level::Error, ]); $em = new \CoreLibs\Logging\ErrorMessage($log); $em->setMessage( @@ -128,9 +128,9 @@ final class CoreLibsLoggingErrorMessagesTest extends TestCase public function testErrorMessageOk(): void { $log = new \CoreLibs\Logging\Logging([ - 'log_file_id' => 'testErrorMessages', + 'log_file_id' => 'testErrorMessagesOk', 'log_folder' => self::LOG_FOLDER, - 'log_level' => Level::Debug + 'log_level' => Level::Error ]); $em = new \CoreLibs\Logging\ErrorMessage($log); $em->setErrorMsg( @@ -314,7 +314,7 @@ final class CoreLibsLoggingErrorMessagesTest extends TestCase * Undocumented function * * @dataProvider providerErrorMessageLog - * @testdox Test Log writing [$_dataName] + * @testdox Test Log writing with log level Error [$_dataName] * * @param string $id * @param string $level @@ -324,7 +324,7 @@ final class CoreLibsLoggingErrorMessagesTest extends TestCase * @param string $expected * @return void */ - public function testErrorMessageLog( + public function testErrorMessageLogErrorLevel( string $id, string $level, string $str, @@ -333,7 +333,63 @@ final class CoreLibsLoggingErrorMessagesTest extends TestCase string $expected ): void { $log = new \CoreLibs\Logging\Logging([ - 'log_file_id' => 'testErrorMessages', + 'log_file_id' => 'testErrorMessagesLogError', + 'log_folder' => self::LOG_FOLDER, + 'log_level' => Level::Notice, + 'log_per_run' => true + ]); + $em = new \CoreLibs\Logging\ErrorMessage($log); + $em->setErrorMsg( + $id, + $level, + $str, + message: $message, + log_error: $log_error + ); + $file_content = ''; + if (is_file($log->getLogFolder() . $log->getLogFile())) { + $file_content = file_get_contents( + $log->getLogFolder() . $log->getLogFile() + ) ?: ''; + } + // if error, if null or false, it will not be logged + if ($level == 'error' && ($log_error === null || $log_error === false)) { + $this->assertStringNotContainsString( + $expected, + $file_content + ); + } else { + $this->assertStringContainsString( + $expected, + $file_content + ); + } + } + + /** + * Undocumented function + * + * @dataProvider providerErrorMessageLog + * @testdox Test Log writing with log Level Debug [$_dataName] + * + * @param string $id + * @param string $level + * @param string $str + * @param string|null $message + * @param bool|null $log_error + * @param string $expected + * @return void + */ + public function testErrorMessageLogErrorDebug( + string $id, + string $level, + string $str, + ?string $message, + ?bool $log_error, + string $expected + ): void { + $log = new \CoreLibs\Logging\Logging([ + 'log_file_id' => 'testErrorMessagesLogDebug', 'log_folder' => self::LOG_FOLDER, 'log_level' => Level::Debug, 'log_per_run' => true @@ -352,8 +408,8 @@ final class CoreLibsLoggingErrorMessagesTest extends TestCase $log->getLogFolder() . $log->getLogFile() ) ?: ''; } - // if n - if ($level == 'error' && ($log_error === null || $log_error === false)) { + // if error, and log is debug level, only explicit false are not logged + if ($level == 'error' && $log_error === false) { $this->assertStringNotContainsString( $expected, $file_content diff --git a/www/admin/class_test.error_msg.php b/www/admin/class_test.error_msg.php index 4863e77b..03d8e5cf 100644 --- a/www/admin/class_test.error_msg.php +++ b/www/admin/class_test.error_msg.php @@ -35,13 +35,16 @@ print '

' . $PAGE_NAME . '

'; $em = new \CoreLibs\Logging\ErrorMessage($log); +print "Log ERROR: " . $log->prAr($em->getFlagLogError()) . "
"; + print "FN: " . ml::fromName('Affe')->name . "
"; print "NU: " . ml::fromValue(100)->name . "
"; print "NU: " . ml::fromValue(1000)->name . "
"; -$em->setErrorMsg('123', 'error', 'msg this is bad, not logged'); -$em->setErrorMsg('123', 'error', 'msg this is bad, not logged', 'target-id', 'other-style'); -$em->setErrorMsg('123', 'error', 'msg this is bad, logged', log_error:true); +$em->setErrorMsg('123', 'error', 'msg this is bad, auto logged if debug'); +$em->setErrorMsg('123', 'error', 'msg this is bad, auto logged if debug', 'target-id', 'other-style'); +$em->setErrorMsg('123', 'error', 'msg this is bad, logged always', log_error:true); +$em->setErrorMsg('123', 'error', 'msg this is bad, never logged', log_error:false); $em->setErrorMsg('1000', 'info', 'This is good'); $em->setErrorMsg('9999', 'abort', 'BAD: This is critical (abort)'); $em->setErrorMsg('10-1000', 'wrong', 'Wrong level: This is emergency'); @@ -51,4 +54,6 @@ print "Errors:
" . $log->prAr($em->getErrorMsg()) . "
"; print ""; +$log->debug('[END]', '==========================================>'); + // __END__ diff --git a/www/lib/CoreLibs/Logging/ErrorMessage.php b/www/lib/CoreLibs/Logging/ErrorMessage.php index c54c3c92..acd6cf8e 100644 --- a/www/lib/CoreLibs/Logging/ErrorMessage.php +++ b/www/lib/CoreLibs/Logging/ErrorMessage.php @@ -27,13 +27,19 @@ class ErrorMessage * init ErrorMessage * * @param \CoreLibs\Logging\Logging $log - * @param bool $log_error [=false] + * @param null|bool $log_error [=null], defaults to false if log is not level debug */ public function __construct( \CoreLibs\Logging\Logging $log, - bool $log_error = false + ?bool $log_error = null ) { $this->log = $log; + // if log default logging is debug then log_error is default set to true + if ($this->log->loggingLevelIsDebug() && $log_error === null) { + $log_error = true; + } else { + $log_error = $log_error ?? false; + } $this->log_error = $log_error; }