save method

  1. @override
Future save(
  1. List<LogMessage> messages
)

Saves log messages from the cache.

  • messages a list with log messages Return Future that receives null for success. Throws error

Implementation

@override
Future save(List<LogMessage> messages) async {
  if (!isOpen() && messages.isEmpty) {
    return null;
  }

  await _createIndexIfNeeded('elasticsearch_logger', false);

  var logItem = getLogItem();

  var bulk = <Doc>[];
  for (var message in messages) {
    var doc = Doc(logItem['_id'], message.toJson(),
        index: logItem['_index'], type: logItem['_type']);
    bulk.add(doc);
  }

  var compleate = await _client!.bulk(updateDocs: bulk);
  if (!compleate) {
    throw ApplicationException('Logger', 'elasticsearch_logger', 'SAVE_ERROR',
        'Can\'t save log messages to Elasticsearch server!');
  }
}