关键字:APP日志 APP崩溃日志 日志收集 日志上传
开发的程序上线后需要收集日志,尤其是App,更加需要分析日志来定位问题。
在Flutter或Dart技术栈中,可以安装 simple_log 扩展来实现。
此插件支持Flutter&Dart全平台,flutter-android,flutter-ios,flutter-web,flutter-linux,flutter-windows,flutter-mac,dart-native,dart-js。
Github: simple_log
pub.flutter-io.cn: simple_log
pub.dev: simple_log
默认情况下,simple_log会把日志上传到avenge.cn,这是一个简易的日志管理平台。 你也可以设置自己的服务器来接收日志。
开始
-
注册账号
-
AppId为应用的ID,AppKey由自己填写,AppId与AppKey用于提交日志。
-
安装扩展
dependencies: simple_log: ^1.0.4 -
用法
import 'package:simple_log/simple_log.dart'; void main(){ SimpleLog logger = SimpleLog(appId: yourAppId, appKey: 'yourAppKey'); FlutterError.onError = (FlutterErrorDetails details) { logger.e(details); }; runApp(MyApp()); } -
其他用法
SimpleLog logger = new SimpleLog(appId: 1, appKey: 'yourAppKey'); SimpleLog logger2 = new SimpleLog(key: 'key2',appId: 2, appKey: 'yourAppKey2'); // key默认值为"default" assert(logger == SimpleLog(key: 'default')); // debug等级 logger.d("hello world"); // info等级 logger.i("hello world"); // warning等级 logger.w({"a":1,"b":"c"}); // 设置本地打印日志的等级,error等级的日志会被打印在本地终端 logger2.setPrintLevels([Level.Error]); // error等级 // 此日志会被打印在本地终端 logger2.e(logger); // 取消上传,日志不会再上传到服务器 logger2.setUploadLevels(null); // fatal等级 // 此日志会被打印在本地终端,但不会上传 logger2.f(["p1", "p2"]);
构建接收日志服务器
SimpleLog.apiPrefix 的默认值是 avenge.cn/api ,你可以指定自己的服务器来接收日志。
var logger = SimpleLog(apiPrefix: 'your own server');
当提交一个日志时,它会向服务器发送一个json:
{
"app_id": 123,
"app_key": "appKey123",
"user": "user123",
"flag": "flag123",
"level": 2,
"data": {}
}
data 是这个日志的内容,可以是字符串,也可以是json。
然后,服务器会返回json:
{
"code": 0,
"message": "success"
}
如果 code 值是 0 ,意味着提交成功。
如果发生了错误,将会是:
{
"code": -1,
"message": "something wrong ..."
}