Compare commits

..

3 Commits

Author SHA1 Message Date
Clemens Schwaighofer
d06769c48b empty admin folder page for edit base page creation tests 2023-09-27 11:38:32 +09:00
Clemens Schwaighofer
4c0390f082 ErrorMessage class: add notice for non error logging to log file
info is already used for write back to front. So we use notice for
non error level messages into the log file
2023-09-27 11:37:26 +09:00
Clemens Schwaighofer
95bee3dc8c Update DB\IO dbWriteDataExt to allow null primary key
So we do not get an error on a new data call with a null primary key
2023-09-27 11:22:16 +09:00
5 changed files with 48 additions and 12 deletions

View File

@@ -44,6 +44,11 @@ final class CoreLibsLoggingErrorMessagesTest extends TestCase
'str' => 'INFO', 'str' => 'INFO',
'expected' => 'info', 'expected' => 'info',
], ],
'notice' => [
'level' => 'notice',
'str' => 'NOTICE',
'expected' => 'notice',
],
'warn' => [ 'warn' => [
'level' => 'warn', 'level' => 'warn',
'str' => 'WARN', 'str' => 'WARN',
@@ -238,6 +243,22 @@ final class CoreLibsLoggingErrorMessagesTest extends TestCase
'log_error' => true, 'log_error' => true,
'expected' => '<ERROR> OTHER ERROR MESSAGE', 'expected' => '<ERROR> OTHER ERROR MESSAGE',
], ],
'notice' => [
'id' => '100',
'level' => 'notice',
'str' => 'NOTICE MESSAGE',
'message' => null,
'log_error' => null,
'expected' => '<NOTICE> NOTICE MESSAGE',
],
'notice, message' => [
'id' => '100',
'level' => 'notice',
'str' => 'NOTICE MESSAGE',
'message' => 'OTHER NOTICE MESSAGE',
'log_error' => null,
'expected' => '<NOTICE> OTHER NOTICE MESSAGE',
],
'crash' => [ 'crash' => [
'id' => '300', 'id' => '300',
'level' => 'crash', 'level' => 'crash',

View File

@@ -0,0 +1,6 @@
<?php
// empty file for add and remove test
// __END__

View File

@@ -3232,7 +3232,7 @@ class IO
* *
* @param array<mixed> $write_array list of elements to write * @param array<mixed> $write_array list of elements to write
* @param array<mixed> $not_write_array list of elements not to write * @param array<mixed> $not_write_array list of elements not to write
* @param int $primary_key id key to decide if we write insert or update * @param int|null $primary_key id key to decide if we write insert or update
* @param string $table name for the target table * @param string $table name for the target table
* @param array<mixed> $data data array to override _POST data * @param array<mixed> $data data array to override _POST data
* @return int|false primary key * @return int|false primary key
@@ -3240,7 +3240,7 @@ class IO
public function dbWriteData( public function dbWriteData(
array $write_array, array $write_array,
array $not_write_array, array $not_write_array,
int $primary_key, ?int $primary_key,
string $table, string $table,
array $data = [] array $data = []
): int|false { ): int|false {
@@ -3260,19 +3260,19 @@ class IO
* PARAM INFO: $primary key * PARAM INFO: $primary key
* this can be a plain string/int and will be internal transformed into the array form * this can be a plain string/int and will be internal transformed into the array form
* or it takes the array form of array [row => column, value => pk value] * or it takes the array form of array [row => column, value => pk value]
* @param array<mixed> $write_array list of elements to write * @param array<mixed> $write_array list of elements to write
* @param int|string|array<mixed> $primary_key primary key string or array set * @param null|int|string|array<mixed> $primary_key primary key string or array set
* @param string $table name for the target table * @param string $table name for the target table
* @param array<mixed> $not_write_array list of elements not to write (optional) * @param array<mixed> $not_write_array list of elements not to write (optional)
* @param array<mixed> $not_write_update_array list of elements not * @param array<mixed> $not_write_update_array list of elements not
* to write during update (optional) * to write during update (optional)
* @param array<mixed> $data optional array with data * @param array<mixed> $data optional array with data
* if not _POST vars are used * if not _POST vars are used
* @return int|false primary key * @return int|false primary key
*/ */
public function dbWriteDataExt( public function dbWriteDataExt(
array $write_array, array $write_array,
int|string|array $primary_key, null|int|string|array $primary_key,
string $table, string $table,
array $not_write_array = [], array $not_write_array = [],
array $not_write_update_array = [], array $not_write_update_array = [],

View File

@@ -42,6 +42,7 @@ class ErrorMessage
* error_id: internal Error ID (should be unique) * error_id: internal Error ID (should be unique)
* level: error level, can only be ok, info, warn, error, abort, crash * level: error level, can only be ok, info, warn, error, abort, crash
* ok and info are positive response: success * ok and info are positive response: success
* notice: a debug message for information only
* warn: success, but there might be some things that are not 100% ok * warn: success, but there might be some things that are not 100% ok
* error: input error or error in executing request * error: input error or error in executing request
* abort: an internal error happened as mandatory information that normally is * abort: an internal error happened as mandatory information that normally is
@@ -98,6 +99,12 @@ class ErrorMessage
]; ];
// write to log for abort/crash // write to log for abort/crash
switch ($level) { switch ($level) {
case 'notice':
$this->log->notice($message ?? $str, array_merge([
'id' => $error_id,
'level' => $original_level,
], $context));
break;
case 'error': case 'error':
if ($log_error) { if ($log_error) {
$this->log->error($message ?? $str, array_merge([ $this->log->error($message ?? $str, array_merge([

View File

@@ -15,6 +15,7 @@ enum MessageLevel: int
{ {
case ok = 100; case ok = 100;
case info = 200; case info = 200;
case notice = 250;
case warn = 300; case warn = 300;
case error = 400; case error = 400;
case abort = 500; case abort = 500;
@@ -30,6 +31,7 @@ enum MessageLevel: int
return match (strtolower($name)) { return match (strtolower($name)) {
'ok' => self::ok, 'ok' => self::ok,
'info' => self::info, 'info' => self::info,
'notice' => self::notice,
'warn', 'warning' => self::warn, 'warn', 'warning' => self::warn,
'error' => self::error, 'error' => self::error,
'abort' => self::abort, 'abort' => self::abort,