starwork_flutter/lib/base/app_logger.dart

65 lines
1.7 KiB
Dart
Raw Normal View History

2025-09-06 15:42:26 +08:00
// utils/app_logger.dart
import 'package:flutter/foundation.dart' show kReleaseMode;
import 'dart:developer' as developer;
// 日志级别枚举(必须在类外)
enum AppLogLevel { debug, info, warn, error }
/// 静态日志工具类,支持 Debug/Release 模式控制
class AppLogger {
// 🔒 禁止外部实例化(虽然是静态类,但防止误用)
AppLogger._();
// 是否启用日志Release 模式下关闭)
static bool get _isLoggingEnabled => !kReleaseMode;
// === 日志输出主方法 ===
static void _log(AppLogLevel level, String message,
{Object? error, StackTrace? stackTrace}) {
if (!_isLoggingEnabled) return;
final String levelStr = level.name.toUpperCase();
final String time = DateTime.now().toIso8601String().split('.').first;
String logMessage = '[$time] [$levelStr] $message';
if (error != null) {
logMessage += '\n🔥 Error: $error';
}
developer.log(
logMessage,
name: 'AppLogger',
error: error,
stackTrace: stackTrace,
);
}
// === 便捷日志方法 ===
/// 调试日志
static void debug(String message) {
_log(AppLogLevel.debug, message);
}
/// 一般信息
static void info(String message) {
_log(AppLogLevel.info, message);
}
/// 警告日志
static void warn(String message, {Object? error}) {
_log(AppLogLevel.warn, message, error: error);
}
/// 错误日志
static void error(String message, {Object? error, StackTrace? stackTrace}) {
_log(AppLogLevel.error, message, error: error, stackTrace: stackTrace);
}
/// 高亮日志(用于关键节点)
static void highlight(String message) {
if (!_isLoggingEnabled) return;
debug('✨✨✨ $message ✨✨✨');
}
}