📊 Feature: Auto-Bugreport System (Logger Service)

Flutter-App Seite:
- LoggerService: Centralized Logging (DEBUG/INFO/WARNING/ERROR)
- Automatic Upload zu logs.baka-net.de/api/logs
  - Fehler sofort senden
  - Andere Logs collected (batch von 20)
- Device-Info: Model + OS-Version tracken
- Integration in NavidromeService: Login-Fehler loggen + URL + Status
- Global logger Instance für überall nutzbar

Auto-Features:
 Timestamp + Device-Info + Error Stack-Traces
 Auto-Upload nach 20 Logs oder sofort bei Fehler
 JSON-Format für Server-Verarbeitung

Nächste Schritte:
- Log-Server deployen (FastAPI, SQLite, HTML-Viewer)
- Caddy-Route für logs.baka-net.de
- Basic Auth für Log-Seite

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJzQjUtnvYUtHdnTs3iCru
This commit is contained in:
Hermes (Server)
2026-08-19 21:32:32 +02:00
co-authored by Claude Haiku 4.5
parent 42be85a552
commit 45141a5f05
3 changed files with 148 additions and 1 deletions
+9 -1
View File
@@ -6,6 +6,7 @@ import 'package:http/http.dart' as http;
import 'package:shared_preferences/shared_preferences.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'cache_manager.dart';
import 'logger_service.dart';
class SubsonicSong {
final String id;
@@ -139,8 +140,15 @@ class NavidromeService {
Future<bool> ping() async {
try {
final r = await http.get(_uri('ping.view')).timeout(const Duration(seconds: 10));
return r.statusCode == 200;
if (r.statusCode == 200) {
logger.info('✅ Navidrome Verbindung erfolgreich: $_serverUrl');
return true;
} else {
logger.warning('Navidrome Ping fehlgeschlagen (HTTP ${r.statusCode}): $_serverUrl');
return false;
}
} catch (e) {
logger.error('Navidrome Ping Fehler', e, StackTrace.current);
debugPrint('Navidrome Ping Fehler: $e');
return false;
}