smp-datapack/src/logger.jmc
themodernhakr 4eb361f6e8
All checks were successful
Deploy datapack to dev / Build (push) Successful in 7s
Fix log level message to display current log level
2025-03-11 16:49:41 -05:00

91 lines
1.9 KiB
Plaintext

@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) { $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 "Logging is disabled";
case 1:
say "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");
}
}