Files
mist/mist-test/src/logger.mist
T
2026-05-10 18:10:13 +02:00

72 lines
1.6 KiB
Plaintext

use <std::fmt>;
public trait TestLogging<T: fmt::Display>: fmt::Display {
String get();
}
public enum LogLevel {
Info,
Warning,
Error,
}
impl fmt::Display for LogLevel {
std::fmt::Result fmt(self*, std::fmt::Formatter<'_> mut* f) {
match (self) {
LogLevel::Info => {
return write!(f, "[INFO]");
}
LogLevel::Warning => {
return write!(f, "[WARN]");
}
LogLevel::Error => {
return write!(f, "[ERROR]");
}
}
}
}
public class Logger {
String prefix;
public constructor(str* prefix) {
self.prefix = prefix.to_string();
}
public void info(self*, str* message) {
self.log(LogLevel::Info, message);
}
public void warning(self*, str* message) {
self.log(LogLevel::Warning, message);
}
public void error(self*, str* message) {
self.log(LogLevel::Error, message);
}
void log(self*, LogLevel level, str* message) {
match(level) {
LogLevel::Info => {
println!("{level} {} {}", self.prefix, message);
}
LogLevel::Warning => {
println!("{level} {} {}", self.prefix, message);
}
LogLevel::Error => {
println!("{level} {} {}", self.prefix, message);
}
}
}
impl fmt::Display {
std::fmt::Result fmt(self*, std::fmt::Formatter<'_> mut* f) {
return write!(f, "logger ({})", self.prefix);
}
}
}