import 'dart:developer' as developer; /// 日志级别 enum LogLevel { debug, info, warning, error, } /// 日志工具类 /// /// 提供统一的日志记录接口,方便后续扩展和管理 class Logger { /// 当前日志级别,低于此级别的日志不会被输出 static LogLevel _currentLevel = LogLevel.debug; /// 默认标签 static const String _defaultTag = 'App'; /// 设置日志级别 static void setLevel(LogLevel level) { _currentLevel = level; } /// 输出调试日志 (不带标签版本) static void debug(String message) { if (_currentLevel.index <= LogLevel.debug.index) { _log('DEBUG', _defaultTag, message); } } /// 输出调试日志 static void d(String tag, String message) { if (_currentLevel.index <= LogLevel.debug.index) { _log('DEBUG', tag, message); } } /// 输出信息日志 (不带标签版本) static void info(String message) { if (_currentLevel.index <= LogLevel.info.index) { _log('INFO', _defaultTag, message); } } /// 输出信息日志 static void i(String tag, String message) { if (_currentLevel.index <= LogLevel.info.index) { _log('INFO', tag, message); } } /// 输出警告日志 (不带标签版本) static void warning(String message) { if (_currentLevel.index <= LogLevel.warning.index) { _log('WARNING', _defaultTag, message); } } /// 输出警告日志 static void w(String tag, String message) { if (_currentLevel.index <= LogLevel.warning.index) { _log('WARNING', tag, message); } } /// 输出错误日志 (不带标签版本) static void error(String message, [dynamic error, StackTrace? stackTrace]) { if (_currentLevel.index <= LogLevel.error.index) { _log('ERROR', _defaultTag, message); if (error != null) { _log('ERROR', _defaultTag, 'Original error: $error'); } if (stackTrace != null) { _log('ERROR', _defaultTag, 'Stack trace: $stackTrace'); } } } /// 输出错误日志 static void e(String tag, String message, [dynamic error, StackTrace? stackTrace]) { if (_currentLevel.index <= LogLevel.error.index) { _log('ERROR', tag, message); if (error != null) { _log('ERROR', tag, 'Original error: $error'); } if (stackTrace != null) { _log('ERROR', tag, 'Stack trace: $stackTrace'); } } } /// 内部日志输出方法 static void _log(String level, String tag, String message) { developer.log('[$tag]: $message'); } }