import 'dart:developer' as developer; import 'package:flutter/foundation.dart'; import 'package:logging/logging.dart'; /// Zentrales Logger-Utility (Wrapper um `package:logging`). /// /// Regeln: kein `print`, keine personenbezogenen Daten (E-Mail, Namen, /// Passwörter, Tokens) in Nachrichten oder Fehlerobjekten. class AppLogger { AppLogger(String name) : _logger = Logger(name); final Logger _logger; void debug(String message) => _logger.fine(message); void info(String message) => _logger.info(message); void warning(String message, {Object? error, StackTrace? stackTrace}) => _logger.warning(message, error, stackTrace); void error(String message, {Object? error, StackTrace? stackTrace}) => _logger.severe(message, error, stackTrace); /// Richtet die Ausgabe einmalig ein. Release: ab INFO, sonst alles. static void configure({Level? level}) { Logger.root.level = level ?? (kReleaseMode ? Level.INFO : Level.ALL); Logger.root.onRecord.listen(_write); } static void _write(LogRecord record) { developer.log( record.message, time: record.time, level: record.level.value, name: record.loggerName, error: record.error, stackTrace: record.stackTrace, ); } }