-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconsole_handler.mbt
More file actions
46 lines (41 loc) · 1.1 KB
/
Copy pathconsole_handler.mbt
File metadata and controls
46 lines (41 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
///|
/// Console handler that prints formatted log output to stdout.
pub(all) struct ConsoleHandler {
level : Level
fmt : (LogEntry) -> String
use_stderr : Bool
}
///|
/// Creates a new ConsoleHandler with the given minimum level and formatter.
pub fn ConsoleHandler::new(
level : Level,
fmt : (LogEntry) -> String,
) -> ConsoleHandler {
{ level, fmt, use_stderr: false }
}
///|
/// Sets whether output goes to stderr. Returns a new handler.
pub fn ConsoleHandler::with_stderr(
self : ConsoleHandler,
v : Bool,
) -> ConsoleHandler {
{ ..self, use_stderr: v }
}
///|
/// Logs an entry if its level meets the configured threshold.
pub fn ConsoleHandler::log(self : ConsoleHandler, entry : LogEntry) -> Unit {
if entry.level.enabled(self.level) {
let line = (self.fmt)(entry)
println(line)
}
}
///|
/// Flushes buffered output. No-op for console handler.
pub fn ConsoleHandler::flush(self : ConsoleHandler) -> Unit {
let _ = self
}
///|
/// Closes the handler and releases resources. No-op for console handler.
pub fn ConsoleHandler::close(self : ConsoleHandler) -> Unit {
let _ = self
}