logApi static method
void
logApi({
- required ApiLogType type,
- required String apiPath,
- required String method,
- int? statusCode,
- String? requestBody,
- String? responseBody,
- Map<
String, String> ? headers, - StackTrace? stackTrace,
Implementation
static void logApi({
required ApiLogType type,
required String apiPath,
required String method, // Added API method (GET, POST, etc.)
int? statusCode,
String? requestBody,
String? responseBody,
Map<String, String>? headers,
StackTrace? stackTrace,
}) {
final timestamp = DateTime.now().toIso8601String();
String emoji;
String colorCode;
switch (type) {
case ApiLogType.request:
emoji = '📤'; // Outgoing request
colorCode = '\x1B[36m'; // Cyan
break;
case ApiLogType.response:
emoji = '📥'; // Incoming response
colorCode = '\x1B[32m'; // Green
break;
case ApiLogType.error:
emoji = '❌';
colorCode = '\x1B[31m'; // Red
break;
}
final baseMessage = '''
$colorCode[$timestamp] $emoji API ${type.name.toUpperCase()}
🔗 Path: $apiPath
🔄 Method: $method
${statusCode != null ? '📟 Status Code: $statusCode' : ''}
${headers != null ? '📑 Headers: ${headers.toString()}' : ''}
${requestBody != null ? '📦 Request Body: $requestBody' : ''}
${responseBody != null ? '📨 Response Body: $responseBody' : ''}''';
final logMessage = stackTrace != null
? '$baseMessage\nStackTrace: $stackTrace'
: baseMessage;
developer.log(logMessage, name: 'API-${type.name}');
}