printLine method

  1. @override
void printLine(
  1. String line, {
  2. String? level,
})
override

Prints log line with optional log level.

Implementation

@override
void printLine(String line, {String? level}) {
  super.printLine(line, level: level);
  if (isTcpSocket) {
    if (_socket != null) {
      print('TCP socket available - will send: ${line.length}');
      _socket?.writeln(line);
    } else {
      print('No socket available - will wait for one with this message.');
      _socketTcpComplete?.future.then((value) => value.writeln(line));
    }
  } else {
    if (_socketUdp != null) {
      final bytesToSend = utf8.encoder.convert(line).toList();
      print('UDP socket available - will send: ${bytesToSend.length}');
      _socketUdp?.send(bytesToSend, InternetAddress(_server), _port);
    } else {
      print('No socket available - will wait for one with this message.');

      /// TODO make a small cache locally before socket is available
      _socketUdpComplete?.future.then(
        (value) => value.send(
          utf8.encoder.convert(line).toList(),
          InternetAddress(_server),
          _port,
        ),
      );
    }
  }
}