You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.5 KiB
62 lines
1.5 KiB
import 'dart:developer' as developer;
|
|
|
|
/// 日志级别
|
|
enum LogLevel {
|
|
debug,
|
|
info,
|
|
warning,
|
|
error,
|
|
}
|
|
|
|
/// 日志工具类
|
|
///
|
|
/// 提供统一的日志记录接口,方便后续扩展和管理
|
|
class Logger {
|
|
/// 当前日志级别,低于此级别的日志不会被输出
|
|
static LogLevel _currentLevel = LogLevel.debug;
|
|
|
|
/// 设置日志级别
|
|
static void setLevel(LogLevel level) {
|
|
_currentLevel = level;
|
|
}
|
|
|
|
/// 输出调试日志
|
|
static void debug(String message) {
|
|
if (_currentLevel.index <= LogLevel.debug.index) {
|
|
_log('DEBUG', message);
|
|
}
|
|
}
|
|
|
|
/// 输出信息日志
|
|
static void info(String message) {
|
|
if (_currentLevel.index <= LogLevel.info.index) {
|
|
_log('INFO', message);
|
|
}
|
|
}
|
|
|
|
/// 输出警告日志
|
|
static void warning(String message) {
|
|
if (_currentLevel.index <= LogLevel.warning.index) {
|
|
_log('WARNING', message);
|
|
}
|
|
}
|
|
|
|
/// 输出错误日志
|
|
static void error(String message, [dynamic error, StackTrace? stackTrace]) {
|
|
if (_currentLevel.index <= LogLevel.error.index) {
|
|
_log('ERROR', message);
|
|
if (error != null) {
|
|
_log('ERROR', 'Original error: $error');
|
|
}
|
|
if (stackTrace != null) {
|
|
_log('ERROR', 'Stack trace: $stackTrace');
|
|
}
|
|
}
|
|
}
|
|
|
|
/// 内部日志输出方法
|
|
static void _log(String level, String message) {
|
|
final timestamp = DateTime.now().toString();
|
|
developer.log('[$timestamp] $level: $message');
|
|
}
|
|
}
|
|
|