Flutter日志管理插件dooadex_logger的使用
dooadex_logger #
特性
- 支持多种类型的日志记录(默认、警告、信息、调试等)
- 可以记录HTTP请求和响应
- 提供了一些有趣的日志打印方法(如心跳、大便等)
开始使用
首先,你需要在pubspec.yaml
文件中添加dooadex_logger
依赖:
dependencies:
dooadex_logger: ^x.x.x
然后运行flutter pub get
来获取该包。
使用
以下是一个简单的示例,展示了如何使用dooadex_logger
插件来记录不同类型的日志。
示例代码
import 'package:dooadex_logger/dooadex_logger.dart';
import 'package:dooadex_palette/dooadex_palette.dart';
// ignore: depend_on_referenced_packages
import 'package:http/http.dart' as http;
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Dooadex Package Test App',
theme: ThemeData(
primarySwatch:
MaterialColor(DooadexColor.primaryMaterialColor.colorHex, DooadexColor.primaryMaterialColor.swatch),
),
home: const MyHomePage(title: 'Dooadex Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
Uri _generateUri() {
return Uri(scheme: "https", host: "api.agify.io", path: null, queryParameters: null, query: "name=dhkim");
}
Future<http.Response> _httpRequest({required http.Request request}) async {
final streamedResponse = await request.send();
return await http.Response.fromStream(streamedResponse);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: ElevatedButton(
onPressed: () async {
// 默认日志
DdxLogger("Default Logger");
// 记录对象
DdxLogger("You can use this for even Object ${_TestObjectPrint()}");
// 警告日志
DdxLogger.warning("Warning");
// 信息日志
DdxLogger.info("Info");
// 调试日志
DdxLogger.debug("Debugging");
// 多行日志
DdxLogger.log("log1\nlog2\nlog3\nlog4\nlog5");
// 构建日志
DdxLogger.build("build start\nbuilding...\nbuilding...\nbuilding...\nbuild done");
// 有趣的心跳日志
DdxFunLogger.heart("I Love You.");
// 有趣的便便日志
DdxFunLogger.poop("Shit Code");
// 异常日志
DdxLogger.exception(_DdxException("Exception Message"));
// 错误日志
DdxLogger.error(DdxError.example());
http.Request request = http.Request("GET", _generateUri());
request.headers.addAll({'Content-Type': 'application/json'});
// HTTP请求日志
DdxLogger.httpRequest(httpRequest: request);
http.Response response = await _httpRequest(request: request);
// HTTP响应日志
DdxLogger.httpResponse(httpResponse: response);
// 打印HTTP响应头的日志
DdxLogger.httpResponse(httpResponse: response, printHeaders: true);
},
child: const Text("Test"),
),
),
);
}
}
class _TestObjectPrint {
final String str = "Instance";
final int integer = 3;
}
class _DdxException implements Exception {
_DdxException(this.message);
final String? message;
@override
String toString() {
return "DooadexException: $message";
}
}
class DdxError implements Error {
final String? type;
final String? message;
final String? title;
final String? detail;
DdxError({this.type, this.message, this.title, this.detail});
@override
String toString() {
return "$type\n$message\n$title\n$detail";
}
@override
StackTrace? get stackTrace => throw UnimplementedError();
factory DdxError.example({String? type, String? message, String? title, String? detail}) = _Example;
}
class _Example extends DdxError {
_Example({String? type, String? message, String? title, String? detail})
: super(
type: type ?? "TEST_ERROR",
message: message ?? 'Error occurred',
title: title ?? 'Error Title',
detail: detail ?? 'Error Message');
}
以上代码展示了如何在Flutter应用中使用dooadex_logger
插件来记录各种类型的日志。通过这些示例,你可以更好地理解和使用该插件的功能。
更多关于Flutter日志管理插件dooadex_logger的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter日志管理插件dooadex_logger的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
dooadex_logger
是一个用于 Flutter 的日志管理插件,它可以帮助开发者更方便地记录和管理应用程序中的日志信息。以下是如何使用 dooadex_logger
的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 dooadex_logger
的依赖:
dependencies:
flutter:
sdk: flutter
dooadex_logger: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来获取依赖。
2. 初始化日志器
在你的应用程序启动时,初始化 dooadex_logger
。通常,你可以在 main.dart
文件中进行初始化:
import 'package:dooadex_logger/dooadex_logger.dart';
void main() {
// 初始化日志器
Logger.init(
level: Level.verbose, // 设置日志级别
enableConsoleOutput: true, // 是否在控制台输出日志
enableFileOutput: true, // 是否将日志写入文件
filePath: "logs/app.log", // 日志文件路径
);
runApp(MyApp());
}
3. 记录日志
在应用程序的代码中,你可以使用 Logger
来记录不同级别的日志信息:
import 'package:dooadex_logger/dooadex_logger.dart';
void someFunction() {
Logger.v("Verbose log"); // 详细日志
Logger.d("Debug log"); // 调试日志
Logger.i("Info log"); // 信息日志
Logger.w("Warning log"); // 警告日志
Logger.e("Error log"); // 错误日志
Logger.wtf("WTF log"); // 严重错误日志
}
4. 日志级别
dooadex_logger
支持多种日志级别,你可以根据需要设置日志的显示级别。以下是一些常见的日志级别:
Level.verbose
: 详细日志,通常用于调试和跟踪。Level.debug
: 调试日志,用于开发过程中的调试信息。Level.info
: 信息日志,用于记录应用程序的正常运行状态。Level.warning
: 警告日志,用于记录潜在的问题。Level.error
: 错误日志,用于记录错误信息。Level.wtf
: 严重错误日志,用于记录非常严重的错误。
5. 日志文件管理
如果你启用了文件输出 (enableFileOutput: true
),日志将被写入指定的文件中。你可以通过 filePath
参数指定日志文件的路径。
Logger.init(
level: Level.verbose,
enableConsoleOutput: true,
enableFileOutput: true,
filePath: "logs/app.log", // 自定义日志文件路径
);
6. 日志格式化
dooadex_logger
允许你自定义日志的格式。你可以通过 Logger.init
的 formatter
参数来设置日志的格式化方式。
Logger.init(
level: Level.verbose,
enableConsoleOutput: true,
enableFileOutput: true,
filePath: "logs/app.log",
formatter: (level, message) => "[${DateTime.now()}] $level: $message", // 自定义日志格式
);
7. 日志文件轮转
为了管理日志文件的大小,你还可以启用日志文件轮转功能。通过 Logger.init
的 maxFileSize
和 maxFiles
参数来配置日志文件的最大大小和保留的文件数量。
Logger.init(
level: Level.verbose,
enableConsoleOutput: true,
enableFileOutput: true,
filePath: "logs/app.log",
maxFileSize: 1024 * 1024, // 每个日志文件最大为 1MB
maxFiles: 5, // 最多保留 5 个日志文件
);
8. 清除日志文件
如果你需要手动清除日志文件,可以使用 Logger.clearLogs()
方法:
Logger.clearLogs();
9. 获取日志内容
你可以通过 Logger.getLogs()
方法获取日志文件的内容:
String logs = await Logger.getLogs();
print(logs);
10. 关闭日志器
在应用程序退出时,可以调用 Logger.close()
来关闭日志器并释放资源:
Logger.close();