File tree Expand file tree Collapse file tree 2 files changed +29
-3
lines changed Expand file tree Collapse file tree 2 files changed +29
-3
lines changed Original file line number Diff line number Diff line change @@ -50,6 +50,15 @@ class Logger {
50
50
/// All logs with levels below this level will be omitted.
51
51
static Level level = Level .verbose;
52
52
53
+ /// The current default implementation of log filter.
54
+ static LogFilter Function () defaultFilter = () => DevelopmentFilter ();
55
+
56
+ /// The current default implementation of log printer.
57
+ static LogPrinter Function () defaultPrinter = () => PrettyPrinter ();
58
+
59
+ /// The current default implementation of log output.
60
+ static LogOutput Function () defaultOutput = () => ConsoleOutput ();
61
+
53
62
static final Set <LogCallback > _logCallbacks = {};
54
63
55
64
static final Set <OutputCallback > _outputCallbacks = {};
@@ -69,9 +78,9 @@ class Logger {
69
78
LogPrinter ? printer,
70
79
LogOutput ? output,
71
80
Level ? level,
72
- }) : _filter = filter ?? DevelopmentFilter (),
73
- _printer = printer ?? PrettyPrinter (),
74
- _output = output ?? ConsoleOutput () {
81
+ }) : _filter = filter ?? defaultFilter (),
82
+ _printer = printer ?? defaultPrinter (),
83
+ _output = output ?? defaultOutput () {
75
84
_filter.init ();
76
85
_filter.level = level ?? Logger .level;
77
86
_printer.init ();
Original file line number Diff line number Diff line change @@ -94,6 +94,23 @@ void main() {
94
94
expect (() => logger.log (Level .nothing, 'Test' ), throwsArgumentError);
95
95
});
96
96
97
+ test ('Multiple Loggers' , () {
98
+ var logger = Logger (level: Level .info, printer: callbackPrinter);
99
+ var secondLogger = Logger (level: Level .debug, printer: callbackPrinter);
100
+
101
+ logger.log (Level .debug, 'Test' );
102
+ expect (printedLevel, null );
103
+ expect (printedMessage, null );
104
+ expect (printedError, null );
105
+ expect (printedStackTrace, null );
106
+
107
+ secondLogger.log (Level .debug, 'Test' );
108
+ expect (printedLevel, Level .debug);
109
+ expect (printedMessage, 'Test' );
110
+ expect (printedError, null );
111
+ expect (printedStackTrace, null );
112
+ });
113
+
97
114
test ('Logger.v' , () {
98
115
var logger = Logger (filter: _AlwaysFilter (), printer: callbackPrinter);
99
116
var stackTrace = StackTrace .current;
You can’t perform that action at this time.
0 commit comments