Shuffle/app/lib/core/logging/app_logger.dart
cschlaefke e5df79ee0a feat(app): add Flutter scaffold with config, logging, routing and l10n
Refs #31

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 20:17:24 +01:00

41 lines
1.2 KiB
Dart

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,
);
}
}