log method
- @override
- @protected
- FLoggerLevel level,
- FLoggerLabels labels,
- String message, [
- FException? exception,
override
Override this method to implement custom logger
Implementation
@override
@protected
void log(
FLoggerLevel level,
FLoggerLabels labels,
String message, [
FException? exception,
]) {
final String name = this.name ?? "Unnamed";
final StringBuffer logMessageBuffer = StringBuffer();
logMessageBuffer
.write("${DateTime.now().toUtc().toIso8601String()} $name [$level]");
for (final entry in labels.entries) {
logMessageBuffer.write("(${entry.key}:${entry.value})");
}
logMessageBuffer.write(" ");
logMessageBuffer.writeln(message);
if (exception != null) {
logMessageBuffer.writeln(exception.toString());
}
switch (level) {
case FLoggerLevel.trace:
case FLoggerLevel.debug:
case FLoggerLevel.info:
stdout.writeln(logMessageBuffer);
break;
case FLoggerLevel.warn:
case FLoggerLevel.error:
case FLoggerLevel.fatal:
stderr.writeln(logMessageBuffer);
break;
default:
throw FExceptionInvalidOperation("Unsupported log level '$level'.");
}
}