update print all segment
This commit is contained in:
@@ -4,7 +4,6 @@ import 'package:firebase_crashlytics/firebase_crashlytics.dart';
|
||||
class CrashlyticsInterceptor extends Interceptor {
|
||||
@override
|
||||
void onError(DioException err, ErrorInterceptorHandler handler) {
|
||||
// Log semua error ke Crashlytics
|
||||
FirebaseCrashlytics.instance.recordError(
|
||||
err,
|
||||
err.stackTrace,
|
||||
@@ -46,6 +45,32 @@ class CrashlyticsInterceptor extends Interceptor {
|
||||
'Status Code: ${err.response?.statusCode ?? 'N/A'}',
|
||||
'Error Type: ${err.type.name}',
|
||||
'Message: ${err.message ?? 'No message'}',
|
||||
// Tambahan
|
||||
'Request Data: ${_sanitizeData(err.requestOptions.data)}',
|
||||
'Response Body: ${err.response?.data ?? 'No response'}',
|
||||
'Headers: ${err.requestOptions.headers.entries.where((e) => e.key.toLowerCase() != 'authorization').toList()}',
|
||||
];
|
||||
}
|
||||
|
||||
/// Hindari log data sensitif
|
||||
dynamic _sanitizeData(dynamic data) {
|
||||
if (data == null) return 'No data';
|
||||
if (data is Map) {
|
||||
final sanitized = Map.from(data);
|
||||
const sensitiveKeys = [
|
||||
'password',
|
||||
'token',
|
||||
'secret',
|
||||
'pin',
|
||||
'card_number',
|
||||
];
|
||||
for (final key in sensitiveKeys) {
|
||||
if (sanitized.containsKey(key)) {
|
||||
sanitized[key] = '***';
|
||||
}
|
||||
}
|
||||
return sanitized;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user