65 lines
1.7 KiB
Dart
65 lines
1.7 KiB
Dart
|
|
// 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 ✨✨✨');
|
|||
|
|
}
|
|||
|
|
}
|