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.
98 lines
2.5 KiB
98 lines
2.5 KiB
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');
|
|
}
|
|
}
|
|
|