BasicMessage

- Now supports a `Level` setting

Level

- Added new enum type

LevelFilter

- Added implementation for level filtering
This commit is contained in:
Tristan B. Velloza Kildaire 2024-04-09 08:41:08 +02:00
parent b13621fd82
commit 2658ed20b5
1 changed files with 52 additions and 1 deletions

View File

@ -5,12 +5,23 @@ import dlog.nu.core;
public class BasicMessage : Message
{
private string text;
private Context ctx;
private Level level;
this(string text, Level level = Level.INFO)
{
this.text = text;
this.level = level;
}
public string getText()
{
return this.text;
}
public Level getLevel()
{
return this.level;
}
}
public class Context
@ -36,4 +47,44 @@ public class FileHandler : Handler
file.writeln(bmesg.getText());
}
}
}
public enum Level
{
ERROR,
WARNING,
INFO,
DEBUG
}
public class LevelFilter : Filter
{
private Level curLevel;
this()
{
}
public bool filter(Message message)
{
// Only handle BasicMessage(s)
BasicMessage bmesg = cast(BasicMessage)message;
if(bmesg)
{
return bmesg.getLevel() <= this.curLevel;
}
return false;
}
}
public class BasicLogger : Logger
{
private Level level;
this()
{
}
}