handleLog method

void handleLog(
  1. BurtLog log, {
  2. bool display = true,
})

Sends a log message to be shown in the footer.

Implementation

void handleLog(BurtLog log, {bool display = true}) {
  // Update device severity
  final oldSeverity = deviceSeverity[log.device];
  if (oldSeverity == null || log.level.isMoreSevereThan(oldSeverity)) {
    deviceSeverity[log.device] = log.level;
  }
  // Save to disk and memory
  saveToFileBuffer.add(log);
  logsForDevice(log.device)?.addWithLimit(log);
  _controller.add(log);
  allLogs.addWithLimit(log);
  notifyListeners();

  // Show important messages to the footer.
  if (display) { // Prevents showing dashboard messages that have already been shown
    switch (log.level) {
      case BurtLogLevel.critical: models.home.setMessage(severity: Severity.critical, text: log.title, permanent: true, logMessage: false);
      case BurtLogLevel.warning: models.home.setMessage(severity: Severity.warning, text: log.title, logMessage: false);
      case BurtLogLevel.error: models.home.setMessage(severity: Severity.error, text: log.title, logMessage: false);
      case BurtLogLevel.info: models.home.setMessage(severity: Severity.info, text: "${log.device.humanName}: ${log.title}", logMessage: false);
      case BurtLogLevel.debug:
      case BurtLogLevel.trace:
      case BurtLogLevel.BURT_LOG_LEVEL_UNDEFINED:
    }
  }
}