init method

  1. @override
Future<void>? init(
  1. Map<String, dynamic> config,
  2. bool test,
  3. DateTime? date
)
override

Setup the appender. This needs to be called for every appender to configure the appender with the necessary data.

Implementation

@override
Future<void>? init(
    Map<String, dynamic> config, bool test, DateTime? date) async {
  created = date ?? DateTime.now();
  type = AppenderType.MYSQL;
  if (config.containsKey('level')) {
    level = Level.fromString(config['level']);
  } else {
    level = Level.INFO;
  }
  if (config.containsKey('host')) {
    host = config['host'];
  } else {
    throw ArgumentError('Missing host argument for MySqlAppender');
  }
  if (config.containsKey('user')) {
    user = config['user'];
  } else {
    throw ArgumentError('Missing user argument for MySqlAppender');
  }
  if (config.containsKey('password')) {
    password = config['password'];
  }
  if (config.containsKey('port')) {
    port = config['port'];
  } else {
    throw ArgumentError('Missing port argument for MySqlAppender');
  }
  if (config.containsKey('database')) {
    database = config['database'];
  } else {
    throw ArgumentError('Missing database argument for MySqlAppender');
  }
  if (config.containsKey('table')) {
    table = config['table'];
  } else {
    throw ArgumentError('Missing table argument for MySqlAppender');
  }
  if (!test) {
    _connectionSettings = ConnectionSettings(
        host: host!,
        port: port!,
        user: user,
        password: password,
        db: database);
    _connection = await MySqlConnection.connect(_connectionSettings);
  }
  return null;
}