printLine method
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,
),
);
}
}
}