[READ ONLY MIRROR] Open Source TikTok alternative built on AT Protocol github.com/sprksocial/client
flutter atproto video dart
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100import 'package:spark/src/core/utils/logging/log_level.dart';import 'package:spark/src/core/utils/logging/log_output.dart';
/// A flexible and customizable logging system for Spark Socialclass SparkLogger { /// Constructor SparkLogger({ this._name = '', this._minLevel = LogLevel.info, List<LogOutput> outputs = const [], this._includeStackTrace = true, }) : _outputs = List.from(outputs);
/// The minimum log level that will be output LogLevel _minLevel;
/// List of log outputs final List<LogOutput> _outputs;
/// The name of the logger (typically the class or feature name) final String _name;
/// Whether to include stack traces for errors final bool _includeStackTrace;
/// Log a verbose message void v(String message, {Object? error, StackTrace? stackTrace}) { _log(LogLevel.verbose, message, error, stackTrace); }
/// Log a debug message void d(String message, {Object? error, StackTrace? stackTrace}) { _log(LogLevel.debug, message, error, stackTrace); }
/// Log an info message void i(String message, {Object? error, StackTrace? stackTrace}) { _log(LogLevel.info, message, error, stackTrace); }
/// Log a warning message void w(String message, {Object? error, StackTrace? stackTrace}) { _log(LogLevel.warning, message, error, stackTrace); }
/// Log an error message void e(String message, {Object? error, StackTrace? stackTrace}) { _log(LogLevel.error, message, error, stackTrace); }
/// Log a fatal message void f(String message, {Object? error, StackTrace? stackTrace}) { _log(LogLevel.fatal, message, error, stackTrace); }
/// Internal logging method void _log( LogLevel level, String message, Object? error, StackTrace? stackTrace, ) { // Skip if level is lower than minimum level if (level.value < _minLevel.value) { return; }
// Add name prefix if provided final prefixedMessage = _name.isNotEmpty ? '[$_name] $message' : message;
// Get stack trace if requested and not provided var trace = stackTrace; if (error != null && trace == null && _includeStackTrace) { trace = StackTrace.current; }
final now = DateTime.now();
// Output to all configured outputs for (final output in _outputs) { output.output(level, prefixedMessage, now, error, trace); } }
/// Add a new output to the logger void addOutput(LogOutput output) { _outputs.add(output); }
/// Remove all outputs void clearOutputs() { _outputs.clear(); }
/// Update the minimum level for this logger. void setMinLevel(LogLevel level) { _minLevel = level; }}