import 'package:flutter/foundation.dart'; abstract final class AppLogger { static void debug(String tag, String message, [Object? error]) { if (!kDebugMode) return; _emit('D', tag, message, error); } static void info(String tag, String message) { if (!kDebugMode) return; _emit('I', tag, message); } static void warn(String tag, String message, [Object? error]) { if (!kDebugMode) return; _emit('W', tag, message, error); } static void error( String tag, String message, Object error, [ StackTrace? stack, ]) { _emit('E', tag, message, error); if (stack != null && kDebugMode) { debugPrint( '[$tag] stack: ${stack.toString().split('\n').take(8).join('\n')}', ); } } static void _emit(String level, String tag, String message, [Object? error]) { final suffix = error != null ? ' err=$error' : ''; debugPrint('[$level/$tag] $message$suffix'); } }