onInitialise method

  1. @override
void onInitialise(
  1. LoggerSettings settings
)
override

Implementation

@override
void onInitialise(LoggerSettings settings) {
  try {
    if (_logger != null) {
      return;
    }

    LogPrinter? printer;

    switch (settings.printer) {
      case LoggerPrinter.simple:
        printer = SimplePrinter(printTime: !kDebugMode);
        break;
      case LoggerPrinter.pretty:
        printer = PrettyPrinter();
        break;
      case LoggerPrinter.fmt:
        printer = LogfmtPrinter();
        break;
    }

    late MultiOutput outputs;
    if (settings.enableConsoleOutput && settings.enableFileOutput) {
      outputs = MultiOutput([
        LoggerObservabilityOutput(),
        LoggerFileOutput(),
      ]);
    } else if (settings.enableConsoleOutput) {
      outputs = MultiOutput([
        LoggerObservabilityOutput(),
        ConsoleOutput(),
      ]);
    } else if (settings.enableFileOutput) {
      outputs = MultiOutput([
        LoggerObservabilityOutput(),
        LoggerFileOutput(),
      ]);
    } else {
      outputs = MultiOutput([
        LoggerObservabilityOutput(),
      ]);
    }

    _logger = Logger(
      level: Level.values[settings.minimumLogLevel.index],
      printer: printer,
      output: outputs,
      filter: kDebugMode ? DevelopmentFilter() : ProductionFilter(),
    );
  } catch (e) {
    if (kDebugMode) print('Error: $e');
  }
}