log static method

void log(
  1. Object? message, {
  2. LogLevel level = LogLevel.info,
  3. String? tag,
  4. String? emoji,
  5. int? ansiColorCode,
})

Logs a message with styling

Implementation

static void log(
  Object? message, {
  LogLevel level = LogLevel.info,
  String? tag,
  String? emoji,
  int? ansiColorCode,
}) {
  if (kReleaseMode) return;

  if (simple) {
    debugPrint('$message');
    return;
  }

  final levelName = level.name.toUpperCase().padRight(7);
  final label = tag != null ? '[$tag] ' : '';
  final chosenEmoji = level == LogLevel.custom
      ? (emoji ?? '')
      : _emoji(level);
  final chosenColor = level == LogLevel.custom
      ? (ansiColorCode ?? 15)
      : _ansiColor(level);

  final timestamp = DateTime.now().toIso8601String();
  final ts = showTimestamp ? '$timestamp ➤ ' : '';
  final formatted =
      '\x1B[38;5;${chosenColor}m'
      '$chosenEmoji $levelName $label$ts$message'
      '\x1B[0m';

  debugPrint(formatted);
}