log static method
void
log(})
Implementation
static void log(
LogLevel level,
String message, {
Object? error,
StackTrace? stackTrace,
String? tag,
bool asJson = true, // default true for structured logging
}) {
if (!enabled || level.index < minLevel.index) return;
final time = DateTime.now().toIso8601String();
final levelName = level.name.toUpperCase();
final prefix = tag != null ? '[$tag]' : '';
// Build JSON for file/cloud
final jsonLog = jsonEncode({
'timestamp': time,
'level': levelName,
'tag': tag ?? '',
'message': message,
'error': error?.toString(),
'stack': stackTrace?.toString(),
});
// Build console-friendly message
final consoleMessage =
'$time [$levelName] $prefix $message${error != null ? '\n$error' : ''}${stackTrace != null ? '\n$stackTrace' : ''}';
// Print colored console log in dev
if (consoleLogging) {
final color = _levelColor(level);
print('$color$consoleMessage${ConsoleColor.reset}');
}
// Always write JSON to file
_writeToFile(jsonLog);
}