@@ -12,18 +12,6 @@ enum Level {
12
12
nothing,
13
13
}
14
14
15
- /// `LogFilter` is called every time a new log message is sent and decides if
16
- /// it will be printed or canceled.
17
- ///
18
- /// The default implementation is [Logger._defaultFilter] .
19
- /// Every implementation should consider [Logger.level] .
20
- typedef LogFilter = bool Function (
21
- Level level,
22
- dynamic message, [
23
- dynamic error,
24
- StackTrace stackTrace,
25
- ]);
26
-
27
15
/// An abstract handler of log messages.
28
16
///
29
17
/// You can implement a `LogPrinter` from scratch or extend [PrettyPrinter] .
@@ -32,6 +20,19 @@ abstract class LogPrinter {
32
20
void log (Level level, dynamic message, dynamic error, StackTrace stackTrace);
33
21
}
34
22
23
+ /// An abstract handler of log messages.
24
+ ///
25
+ /// You can implement your own `LogFilter` or use [DebugFilter] .
26
+ /// Every implementation should consider [Logger.level] .
27
+ abstract class LogFilter {
28
+ /// Is called every time a new log message is sent and decides if
29
+ /// it will be printed or canceled.
30
+ ///
31
+ /// Returns `true` if the message should be logged.
32
+ bool shouldLog (Level level, dynamic message,
33
+ [dynamic error, StackTrace stackTrace]);
34
+ }
35
+
35
36
/// Use instances of logger to send log messages to the [LogPrinter] .
36
37
class Logger {
37
38
/// The current logging level of the app.
@@ -48,7 +49,7 @@ class Logger {
48
49
/// [PrettyPrinter] and [_defaultFilter] will be used.
49
50
Logger ({LogPrinter printer, LogFilter filter})
50
51
: _printer = printer ?? PrettyPrinter (),
51
- _filter = filter ?? _defaultFilter ;
52
+ _filter = filter ?? DebugFilter () ;
52
53
53
54
/// Log message at level [Level.verbose] .
54
55
void v (dynamic message, [dynamic error, StackTrace stackTrace]) {
@@ -83,25 +84,8 @@ class Logger {
83
84
/// Log message with [level] .
84
85
void log (Level level, dynamic message,
85
86
[dynamic error, StackTrace stackTrace]) {
86
- if (_filter (level, message, error, stackTrace)) {
87
+ if (_filter. shouldLog (level, message, error, stackTrace)) {
87
88
_printer.log (level, message, error, stackTrace);
88
89
}
89
90
}
90
-
91
- /// Default implementation of [LogFilter] . All log
92
- static bool _defaultFilter (
93
- Level level,
94
- dynamic message, [
95
- dynamic error,
96
- StackTrace stackTrace,
97
- ]) {
98
- var shouldLog = false ;
99
- assert (() {
100
- if (level.index >= Logger .level.index) {
101
- shouldLog = true ;
102
- }
103
- return true ;
104
- }());
105
- return shouldLog;
106
- }
107
91
}
0 commit comments