log static method

void log(
  1. String message, {
  2. String? additionalMessage,
  3. String? tag,
  4. LogType type = LogType.info,
  5. StackTrace? stackTrace,
})

Implementation

static void log(
  String message, {
  String? additionalMessage,
  String? tag,
  LogType type = LogType.info,
  StackTrace? stackTrace, // Added the stackTrace parameter
}) {
  final timestamp = DateTime.now().toIso8601String();
  String emoji;
  String colorCode;

  switch (type) {
    case LogType.info:
      emoji = 'ℹ️';
      colorCode = '\x1B[34m'; // Blue
      break;
    case LogType.warning:
      emoji = '⚠️';
      colorCode = '\x1B[33m'; // Yellow
      break;
    case LogType.error:
      emoji = '❌';
      colorCode = '\x1B[31m'; // Red
      break;
    case LogType.success:
      emoji = '✅';
      colorCode = '\x1B[32m'; // Green
      break;
    case LogType.debug:
      emoji = '🐞';
      colorCode = '\x1B[35m'; // Purple
      break;
  }

  String messageTag =
      tag != null ? ' ${type.name}-$tag: ' : ' ${type.name} :';

  // Building the log message
  final baseMessage =
      '$colorCode[$timestamp] $emoji $messageTag $message${additionalMessage != null ? "\n$additionalMessage" : ""}';

  // Check if we have a stackTrace and append it to the message
  final logMessage = stackTrace != null
      ? '$baseMessage\nStackTrace: $stackTrace'
      : baseMessage;

  // Print the styled message
  developer.log(logMessage, name: type.name);
}