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 {
5050 /// All logs with levels below this level will be omitted.
5151 static Level level = Level .verbose;
5252
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+
5362 static final Set <LogCallback > _logCallbacks = {};
5463
5564 static final Set <OutputCallback > _outputCallbacks = {};
@@ -69,9 +78,9 @@ class Logger {
6978 LogPrinter ? printer,
7079 LogOutput ? output,
7180 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 () {
7584 _filter.init ();
7685 _filter.level = level ?? Logger .level;
7786 _printer.init ();
Original file line number Diff line number Diff line change @@ -94,6 +94,23 @@ void main() {
9494 expect (() => logger.log (Level .nothing, 'Test' ), throwsArgumentError);
9595 });
9696
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+
97114 test ('Logger.v' , () {
98115 var logger = Logger (filter: _AlwaysFilter (), printer: callbackPrinter);
99116 var stackTrace = StackTrace .current;
You can’t perform that action at this time.
0 commit comments