logException static method

void logException(
  1. Object exception, [
  2. StackTrace? stackTrace
])

Log a ZenException with beautiful formatting

This method automatically formats ZenException instances using their toString() method, which respects ZenConfig.verboseErrors setting.

Example:

try {
  final service = Zen.find<UserService>();
} catch (e) {
  if (e is ZenException) {
    ZenLogger.logException(e);
  }
}

Implementation

static void logException(Object exception, [StackTrace? stackTrace]) {
  if (!ZenLogLevel.error.shouldLog(ZenConfig.logLevel)) return;

  // Format the exception message
  final message = exception.toString();

  // Use custom error handler if set
  if (_errorHandler != null) {
    _errorHandler!(message, exception, stackTrace);
    return;
  }

  // Use custom log handler if set
  if (_logHandler != null) {
    _logHandler!(message, LogLevel.error);
    return;
  }

  // Default logging with formatted output
  if (kDebugMode) {
    if (testMode && logFunction != null) {
      logFunction!(message, name: '$_prefix EXCEPTION');
    } else {
      developer.log(
        message,
        name: '$_prefix EXCEPTION',
        error: exception,
        stackTrace: stackTrace,
        level: 1000, // Error level
      );
    }
  }
}