【问题标题】:Dart Singleton with parameters (global app logger)带参数的 Dart Singleton(全局应用记录器)
【发布时间】:2022-01-05 18:12:36
【问题描述】:

我想在我的应用程序中使用 Logger 库。我只想将它实例化一次,以便在我的应用程序中具有一致的格式,而不是在我使用它的每个文件中传递 PrettyPrinter。这样做的正确方法是什么?我应该只使用全局常量吗?有没有办法使用单例来做到这一点?

【问题讨论】:

    标签: flutter dart logging singleton globals


    【解决方案1】:

    我定义了一个辅助函数来获取 Logger:

    import 'package:logger/logger.dart';
    import 'log_printer.dart';
    
    Logger getLogger(String className) {
      return Logger(printer: SimpleLogPrinter(className));
    }
    

    然后在我想要记录 eaxmple 的每个类中:

    class ProfileService with ChangeNotifier {
      static final _log = getLogger('ProfileService');
    
      Future<Profile> updateProfile(Profile profile) async {
        _log.v('updateProfile');
        ...
      }
      ...
    }
    

    另一个例子:

    class AuthScreen extends StatelessWidget {
      final log = getLogger('AuthScreen');
    
      @override
      Widget build(BuildContext context) {
        log.v('build called');
        ...
      }
      ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多