logToConsole function
Logs a message to the console with formatting and structured data
Implementation
void logToConsole(LogMessage message, LogLevel minimumLogLevel) {
if (message.logLevel.index < minimumLogLevel.index) return;
final timestamp = DateTime.now().toIso8601String().substring(11, 19);
final levelIcon = switch (message.logLevel) {
LogLevel.trace => 'đ',
LogLevel.debug => 'đ',
LogLevel.info => 'âšī¸ ',
LogLevel.warn => 'â ī¸ ',
LogLevel.error => 'â',
LogLevel.fatal => 'đ¨',
};
final tagStr =
(message.tags?.isNotEmpty ?? false)
? '[${message.tags!.join(',')}] '
: '';
print('$timestamp $levelIcon $tagStr${message.message}');
if (message.structuredData?.isNotEmpty ?? false) {
for (final entry in message.structuredData!.entries) {
print(' ââ ${entry.key}: ${entry.value}');
}
}
if (message.fault case final fault?) {
print(_formatMessage('***** Fault *****\n$fault', message.logLevel));
}
if (message.stackTrace case final stackTrace?) {
print(
_formatMessage('***** Stack Trace *****\n$stackTrace', message.logLevel),
);
}
}