init static method

Future<void> init(
  1. LogConfig config
)

Implementation

static Future<void> init(LogConfig config) async {
  _config = config;
  // 普通日志输出通道(PrettyPrinter)
  List<LogOutput> outputsPretty = [DeveloperOutput(name: 'LOG')];
  // Console 专用输出通道(RawPrinter,保持纯文本)
  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(),
    output: MultiOutput(outputsPretty),
  );
  _consoleLogger = Logger(
    filter:
        config.filter ?? ComLogFilter(LevelAdapter.toLevel(config.logLevel)),
    printer: RawPrinter(),
    output: MultiOutput(outputsRaw),
  );
}