log method
Future<void>
log(
{ - required String type,
- required String message,
- Map<String, dynamic>? data,
- String? app,
- String? url,
- String? userid,
- String? username,
- String? schema,
- String? reference,
})
Implementation
Future<void> log({
required String type,
required String message,
Map<String, dynamic>? data,
String? app,
String? url,
String? userid,
String? username,
String? schema,
String? reference,
}) async {
final callerInfo = _getCallerInfo();
final logData = {
'type': type,
'data': jsonEncode(data ?? {}),
'app': app ?? 'Total.js OpenLogger Dart/Flutter Client',
'url': url,
'userid': userid,
'username': username ?? (autoConfig ? await _getDeviceName() : null),
'schema': schema,
'reference': reference,
'message': message,
'ua': autoConfig ? await _getUserAgent() : null,
'ip': autoConfig ? await _getIpAddress() : null,
'caller': callerInfo, // Verwenden der callerInfo
};
try {
final uri = Uri.parse('${this.url}/?token=$token');
final response = await http.post(
uri,
headers: {'Content-Type': 'application/json'},
body: jsonEncode(logData),
);
if (response.statusCode != 200) {
developer.log('Failed to send log. Status code: ${response.statusCode}', name: 'OpenLogger');
} else {
developer.log('Log sent successfully.', name: 'OpenLogger');
}
} catch (error) {
developer.log('Error occurred while sending log: $error', name: 'OpenLogger');
}
}