onRecord method

Future<void> onRecord({
  1. required LogRecord record,
  2. String? deviceId,
  3. String? buildNumber,
  4. String? version,
})

Implementation

Future<void> onRecord(
    {required LogRecord record,
    String? deviceId,
    String? buildNumber,
    String? version}) async {
  /// First write logs to console
  print(
      '${record.level.name}: ${record.time}: ${record.loggerName}\n${record.message.isNotEmpty ? record.message : ''}${record.object != null && record.object!.toString().isNotEmpty ? '\n${record.object!.toString()}' : ''}${record.error != null && record.error!.toString().isNotEmpty ? '\n${record.error!.toString()}' : ''}${record.stackTrace != null && record.stackTrace!.toString().isNotEmpty ? '\n${record.stackTrace!.toString()}' : ''}');

  /// Then send it via Bugfender
  if (record.level == Level.SHOUT) {
    logEvent(
      severity: GoogleLoggerSeverity.EMERGENCY,
      args: {
        'message': record.message,
        'object': record.object,
        'error': record.error,
        'stackTrace': record.stackTrace,
        'deviceId': deviceId,
        'buildNumber': buildNumber,
        'version': version,
      },
      functionName: record.message,
      fileName: record.loggerName,
    );
  } else if (record.level == Level.SEVERE) {
    logEvent(
      severity: GoogleLoggerSeverity.ALERT,
      args: {
        'message': record.message,
        'object': record.object,
        'error': record.error,
        'stackTrace': record.stackTrace,
        'deviceId': deviceId,
        'buildNumber': buildNumber,
        'version': version,
      },
      functionName: record.message,
      fileName: record.loggerName,
    );
  } else if (record.level == Level.WARNING) {
    logEvent(
      severity: GoogleLoggerSeverity.WARNING,
      args: {
        'message': record.message,
        'object': record.object,
        'error': record.error,
        'stackTrace': record.stackTrace,
        'deviceId': deviceId,
        'buildNumber': buildNumber,
        'version': version,
      },
      functionName: record.message,
      fileName: record.loggerName,
    );
  } else if (record.level == Level.INFO) {
    logEvent(
      severity: GoogleLoggerSeverity.INFO,
      args: {
        'message': record.message,
        'object': record.object,
        'error': record.error,
        'stackTrace': record.stackTrace,
        'deviceId': deviceId,
        'buildNumber': buildNumber,
        'version': version,
      },
      functionName: record.message,
      fileName: record.loggerName,
    );
  } else if (record.level == Level.FINE) {
    logEvent(
      severity: GoogleLoggerSeverity.NOTICE,
      args: {
        'message': record.message,
        'object': record.object,
        'error': record.error,
        'stackTrace': record.stackTrace,
        'deviceId': deviceId,
        'buildNumber': buildNumber,
        'version': version,
      },
      functionName: record.message,
      fileName: record.loggerName,
    );
  } else if (record.level == Level.FINER) {
    logEvent(
      severity: GoogleLoggerSeverity.DEBUG,
      args: {
        'message': record.message,
        'object': record.object,
        'error': record.error,
        'stackTrace': record.stackTrace,
        'deviceId': deviceId,
        'buildNumber': buildNumber,
        'version': version,
      },
      functionName: record.message,
      fileName: record.loggerName,
    );
  } else if (record.level == Level.FINEST) {
    logEvent(
      severity: GoogleLoggerSeverity.DEFAULT,
      args: {
        'message': record.message,
        'object': record.object,
        'error': record.error,
        'stackTrace': record.stackTrace,
        'deviceId': deviceId,
        'buildNumber': buildNumber,
        'version': version,
      },
      functionName: record.message,
      fileName: record.loggerName,
    );
  }
}