Merge pull request 'Create general purpose logging module' (#4) from dev-logging into dev
All checks were successful
Deploy datapack to dev / Build (push) Successful in 8s
All checks were successful
Deploy datapack to dev / Build (push) Successful in 8s
Reviewed-on: #4
This commit is contained in:
commit
6cb4b30b2d
90
src/logger.jmc
Normal file
90
src/logger.jmc
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
@lazy
|
||||||
|
function logger(type, caller, message) {
|
||||||
|
$tmp_logger = false;
|
||||||
|
$tmp_type = $type;
|
||||||
|
if ($temp_type > 6 || $temp_type < 1) {
|
||||||
|
say "The log type requested does not exist. Please find the caller ($caller) and resolve this issue.";
|
||||||
|
}
|
||||||
|
if ($temp_type >= $log_level || $logger) { $tmp_logger = $type; }
|
||||||
|
switch($tmp_logger) {
|
||||||
|
case 5:
|
||||||
|
say "FATAL: ($caller) $message";
|
||||||
|
case 4:
|
||||||
|
say "ERROR: ($caller) $message";
|
||||||
|
case 3:
|
||||||
|
say "WARNING: ($caller) $message";
|
||||||
|
case 2:
|
||||||
|
say "INFO: ($caller) $message";
|
||||||
|
case 1:
|
||||||
|
say "DEBUG: ($caller) $message";
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class logger {
|
||||||
|
@add(__load__)
|
||||||
|
function __init__() {
|
||||||
|
if (!$log_level) {
|
||||||
|
$log_level = 3;
|
||||||
|
} else if ($log_level > 5) {
|
||||||
|
say "The log level was too high. Resetting to default value.";
|
||||||
|
$log_level = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
execute run {
|
||||||
|
$say "The log level is set to $(0).";
|
||||||
|
} with [$log_level];
|
||||||
|
|
||||||
|
|
||||||
|
if (!$logger) {
|
||||||
|
$logger = false;
|
||||||
|
} else if ($logger) {
|
||||||
|
say "Debug logging is enabled. You should now see a test log message:";
|
||||||
|
logger(2, logger, "This is a test. Logging appears to be working as expected!");
|
||||||
|
} else {
|
||||||
|
say "This is not a log message. There appears to be something wrong with the logger. It has not been detected as `!true` or `true`. Please investigate.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggle() {
|
||||||
|
switch($logger) {
|
||||||
|
case 0:
|
||||||
|
$logger = true;
|
||||||
|
this.status();
|
||||||
|
case 1:
|
||||||
|
$logger = false;
|
||||||
|
this.status();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function status() {
|
||||||
|
switch($logger) {
|
||||||
|
case 0:
|
||||||
|
say "Debug logging is disabled";
|
||||||
|
case 1:
|
||||||
|
say "Debug logging is enabled";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_fatal() {
|
||||||
|
logger(5, logger, "This is a test");
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_error() {
|
||||||
|
logger(4, logger, "This is a test");
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_warning() {
|
||||||
|
logger(3, logger, "This is a test");
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_info() {
|
||||||
|
logger(2, logger, "This is a test");
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_debug() {
|
||||||
|
logger(1, logger, "This is a test");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user