log method Null safety
- LogEvent event
override
Is called every time a new LogEvent is sent and handles printing or storing the message.
Implementation
@override
List<String> log(LogEvent event) {
if (EnumHelper.getIndexOf(Level.values, Log.loggingLevel) >
EnumHelper.getIndexOf(Level.values, event.level)) {
// don't log events where the log level is set higher
return [];
}
//var formatter = DateFormat('dd HH:mm:ss.');
//var now = DateTime.now();
//var formattedDate = formatter.format(now) + now.millisecond.toString();
var frames = StackTraceImpl();
var i = 0;
var depth = 0;
for (var frame in frames.frames!) {
i++;
var path2 = frame.sourceFile.path;
if (!path2.contains(Log._localPath) && !path2.contains('logger.dart')) {
depth = i - 1;
break;
}
}
print(color(
event.level,
'${EnumHelper.getName(event.level)} '
'${StackTraceImpl(skipFrames: depth).formatStackTrace(methodCount: 1)} '
'::: ${event.message}'));
if (event.error != null) {
print(color(event.level, '${event.error}'));
}
if (event.stackTrace != null) {
if (event.stackTrace.runtimeType == StackTraceImpl) {
var st = event.stackTrace as StackTraceImpl?;
print(color(event.level, '$st'));
} else {
print(color(event.level, '${event.stackTrace}'));
}
}
return []; // TODO
}