Logging\ErrorMsg class update to log error level automatically for debug
if log level is debug, automatically log the error messages. We still skip warn and info levels from logging. The rest is based on the logging level (notice eg only gets logged if log level is at least notice)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -35,13 +35,16 @@ print '<div><h1>' . $PAGE_NAME . '</h1></div>';
|
||||
|
||||
$em = new \CoreLibs\Logging\ErrorMessage($log);
|
||||
|
||||
print "Log ERROR: " . $log->prAr($em->getFlagLogError()) . "<br>";
|
||||
|
||||
print "FN: " . ml::fromName('Affe')->name . "<br>";
|
||||
print "NU: " . ml::fromValue(100)->name . "<br>";
|
||||
print "NU: " . ml::fromValue(1000)->name . "<br>";
|
||||
|
||||
$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: <pre>" . $log->prAr($em->getErrorMsg()) . "</pre>";
|
||||
|
||||
print "</body></html>";
|
||||
|
||||
$log->debug('[END]', '==========================================>');
|
||||
|
||||
// __END__
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user