@@ -36,6 +36,17 @@ class _CallbackPrinter extends LogPrinter {
3636 }
3737}
3838
39+ /// Test class for the lazy-initialization of variables.
40+ class LazyLogger {
41+ static bool ? printed;
42+ static final filter = ProductionFilter ();
43+ static final printer = _CallbackPrinter ((l, m, e, s) {
44+ printed = true ;
45+ return [];
46+ });
47+ static final logger = Logger (filter: filter, printer: printer);
48+ }
49+
3950void main () {
4051 Level ? printedLevel;
4152 dynamic printedMessage;
@@ -194,10 +205,33 @@ void main() {
194205 expect (printedMessage, 'This is' );
195206 });
196207
208+ test ('Setting filter Levels' , () {
209+ var filter = ProductionFilter ();
210+ expect (filter.level, Logger .level);
211+
212+ final initLevel = Level .warning;
213+ var logger = Logger (
214+ filter: filter,
215+ printer: callbackPrinter,
216+ level: initLevel,
217+ );
218+ expect (filter.level, initLevel);
219+
220+ filter.level = Level .fatal;
221+ expect (filter.level, Level .fatal);
222+ });
223+
197224 test ('Logger.close' , () async {
198225 var logger = Logger ();
199226 expect (logger.isClosed (), false );
200227 await logger.close ();
201228 expect (logger.isClosed (), true );
202229 });
230+
231+ test ('Lazy Logger Initialization' , () {
232+ expect (LazyLogger .printed, isNull);
233+ LazyLogger .filter.level = Level .warning;
234+ LazyLogger .logger.i ("This is an info message and should not show" );
235+ expect (LazyLogger .printed, isNull);
236+ });
203237}
0 commit comments