*<Null safety>*
void log (Level logLevel, dynamic message, [Object error, StackTrace stackTrace, Zone zone])
void log(Level logLevel, message, [Object error, StackTrace stackTrace, Zone zone]) { Object object; if (isLoggable(logLevel)) { if (message is Function) { message = message(); } String msg; if (message is String) { msg = message; } else { msg = message.toString(); object = message; } if (stackTrace == null && logLevel >= recordStackTraceAtLevel) { stackTrace = StackTrace.current; error ??= 'autogenerated stack trace for $logLevel $msg'; } zone ??= Zone.current; var record = LogRecord(logLevel, msg, fullName, error, stackTrace, zone, object); if (parent == null) { _publish(record); } else if (!hierarchicalLoggingEnabled) { root._publish(record); } else { var target = this; while (target != null) { target._publish(record); target = target.parent; } } } }