init static method

Future<bool> init(
  1. Map<String, dynamic>? config, {
  2. bool test = false,
  3. DateTime? date,
  4. int clientProxyCallDepthOffset = 0,
})

Initialise the logger from the given config.

Implementation

static Future<bool> init(Map<String, dynamic>? config,
    {bool test = false,
    DateTime? date,
    int clientProxyCallDepthOffset = 0}) async {
  if (config == null || config.isEmpty) {
    _singleton = Logger._empty();
    return true; // Some tests rely on defining this by code
  }
  var definedAppenders = <Appender>[
    ConsoleAppender(),
    FileAppender(),
    HttpAppender(),
    EmailAppender(),
    MySqlAppender()
  ];
  var activeAppenders = <Appender>[];
  for (Map<String, dynamic> app in config['appenders']) {
    if (!app.containsKey('type')) {
      throw ArgumentError('Missing type for appender');
    }
    for (var a in definedAppenders) {
      if (app['type'].toLowerCase() == a.getType().toLowerCase()) {
        var appender = a.getInstance();
        await appender.init(app, test, date);
        activeAppenders.add(appender);
      }
    }
  }
  _singleton = Logger._(definedAppenders, activeAppenders,
      clientDepthOffset: clientProxyCallDepthOffset);
  return true;
}