init static method

Future<void> init(
  1. LogConfig config
)

Implementation

static Future<void> init(LogConfig config) async {
  config.validate();
  if (_initialized) {
    await dispose();
  }
  _config = config;
  List<LogOutput> outputsPretty = [DeveloperOutput(name: 'LOG')];
  List<LogOutput> outputsRaw = [DeveloperOutput(name: 'CONSOLE')];

  if (config.canWriteToFile) {
    _fileOutput = IsolateFileOutput(config);
    await _fileOutput.init();
    outputsPretty.add(_fileOutput);
    outputsRaw.add(_fileOutput);
  }

  if (config.output != null) {
    outputsPretty = [...outputsPretty, ...config.output!];
    outputsRaw = [...outputsRaw, ...config.output!];
  }

  if (config.composeOutputs != null) {
    outputsPretty = config.composeOutputs!(outputsPretty);
    outputsRaw = config.composeOutputs!(outputsRaw);
  }

  _logger = Logger(
    filter:
        config.filter ?? ComLogFilter(LevelAdapter.toLevel(config.logLevel)),
    printer: config.printer ?? PrettyPrinter(colors: false),
    output: MultiOutput(outputsPretty),
  );
  _consoleLogger = Logger(
    filter:
        config.filter ?? ComLogFilter(LevelAdapter.toLevel(config.logLevel)),
    printer: RawPrinter(),
    output: MultiOutput(outputsRaw),
  );
  _initialized = true;
}