BasicLogger

- Now stores current level in a filter of its own
- The `LevelFilter` is attached to the `BasicLogger` on construction

LevelFilter

- Now use a `Level*` rather
This commit is contained in:
Tristan B. Velloza Kildaire 2024-04-09 08:44:30 +02:00
parent 2658ed20b5
commit 39c2fe78fd
1 changed files with 13 additions and 5 deletions

View File

@ -57,13 +57,13 @@ public enum Level
DEBUG DEBUG
} }
public class LevelFilter : Filter private class LevelFilter : Filter
{ {
private Level curLevel; private Level* level;
this() this(Level* level)
{ {
this.level = level;
} }
public bool filter(Message message) public bool filter(Message message)
@ -72,7 +72,7 @@ public class LevelFilter : Filter
BasicMessage bmesg = cast(BasicMessage)message; BasicMessage bmesg = cast(BasicMessage)message;
if(bmesg) if(bmesg)
{ {
return bmesg.getLevel() <= this.curLevel; return bmesg.getLevel() <= *this.level;
} }
return false; return false;
@ -85,6 +85,14 @@ public class BasicLogger : Logger
this() this()
{ {
// Attach a new level-filter
// with access to our current
// level
addFilter(new LevelFilter(&level));
}
public final void setLevel(Level level)
{
this.level = level;
} }
} }