Skip to content

Commit 61671a5

Browse files
committed
统一 log ,增加 error 收集
1 parent 8dcc32f commit 61671a5

25 files changed

+204
-235
lines changed

lib/common/logger.dart

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import 'package:flutter/foundation.dart';
2+
import 'package:talker_flutter/talker_flutter.dart';
3+
4+
final talker = TalkerFlutter.init(
5+
settings: TalkerSettings(
6+
/// You can enable/disable all talker processes with this field
7+
enabled: true,
8+
9+
/// You can enable/disable saving logs data in history
10+
useHistory: true,
11+
12+
/// Length of history that saving logs data
13+
maxHistoryItems: 100,
14+
15+
/// You can enable/disable console logs
16+
useConsoleLogs: true,
17+
),
18+
);
19+
20+
printLog(Object msg) {
21+
if (msg is Error) {
22+
talker.error("Catch Running Error:", msg);
23+
} else if (msg is Exception) {
24+
talker.error("Catch Running Exception:", msg);
25+
}
26+
if (kDebugMode) {
27+
print(msg);
28+
}
29+
}

lib/common/net/interceptors/log_interceptor.dart

Lines changed: 11 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
// ignore_for_file: type_literal_in_constant_pattern
22

33
import 'package:dio/dio.dart';
4-
import 'package:flutter/foundation.dart';
54
import 'package:gsy_github_app_flutter/common/config/config.dart';
5+
import 'package:gsy_github_app_flutter/common/logger.dart';
66

77
/// Log 拦截器
88
/// Created by guoshuyu
@@ -20,17 +20,11 @@ class LogsInterceptors extends InterceptorsWrapper {
2020
@override
2121
onRequest(RequestOptions options, handler) async {
2222
if (Config.DEBUG!) {
23-
if (kDebugMode) {
24-
print("请求url:${options.path} ${options.method}");
25-
}
23+
printLog("请求url:${options.path} ${options.method}");
2624
options.headers.forEach((k, v) => options.headers[k] = v ?? "");
27-
if (kDebugMode) {
28-
print('请求头: ${options.headers}');
29-
}
25+
printLog('请求头: ${options.headers}');
3026
if (options.data != null) {
31-
if (kDebugMode) {
32-
print('请求参数: ${options.data}');
33-
}
27+
printLog('请求参数: ${options.data}');
3428
}
3529
}
3630
try {
@@ -49,19 +43,15 @@ class LogsInterceptors extends InterceptorsWrapper {
4943
}
5044
addLogic(sHttpRequest, map);
5145
} catch (e) {
52-
if (kDebugMode) {
53-
print(e);
54-
}
46+
printLog(e);
5547
}
5648
return super.onRequest(options, handler);
5749
}
5850

5951
@override
6052
onResponse(Response response, handler) async {
6153
if (Config.DEBUG!) {
62-
if (kDebugMode) {
63-
print('返回参数: $response');
64-
}
54+
printLog('返回参数: $response');
6555
}
6656
switch (response.data.runtimeType) {
6757
case Map || List:
@@ -72,9 +62,7 @@ class LogsInterceptors extends InterceptorsWrapper {
7262
addLogic(sResponsesHttpUrl, response.requestOptions.uri.toString());
7363
addLogic(sHttpResponses, data);
7464
} catch (e) {
75-
if (kDebugMode) {
76-
print(e);
77-
}
65+
printLog(e);
7866
}
7967
}
8068
case String:
@@ -85,9 +73,7 @@ class LogsInterceptors extends InterceptorsWrapper {
8573
addLogic(sResponsesHttpUrl, response.requestOptions.uri.toString());
8674
addLogic(sHttpResponses, data);
8775
} catch (e) {
88-
if (kDebugMode) {
89-
print(e);
90-
}
76+
printLog(e);
9177
}
9278
}
9379
}
@@ -97,20 +83,16 @@ class LogsInterceptors extends InterceptorsWrapper {
9783
@override
9884
onError(DioException err, handler) async {
9985
if (Config.DEBUG!) {
100-
if (kDebugMode) {
101-
print('请求异常: $err');
102-
print('请求异常信息: ${err.response?.toString() ?? ""}');
103-
}
86+
printLog('请求异常: $err');
87+
printLog('请求异常信息: ${err.response?.toString() ?? ""}');
10488
}
10589
try {
10690
addLogic(sHttpErrorUrl, err.requestOptions.path);
10791
var errors = <String, dynamic>{};
10892
errors["error"] = err.message;
10993
addLogic(sHttpError, errors);
11094
} catch (e) {
111-
if (kDebugMode) {
112-
print(e);
113-
}
95+
printLog(e);
11496
}
11597
return super.onError(err, handler);
11698
}

lib/common/net/interceptors/response_interceptor.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import 'package:dio/dio.dart';
2-
import 'package:flutter/foundation.dart';
2+
import 'package:gsy_github_app_flutter/common/logger.dart';
33
import 'package:gsy_github_app_flutter/common/net/code.dart';
44
import 'package:gsy_github_app_flutter/common/net/result_data.dart';
55

@@ -20,9 +20,7 @@ class ResponseInterceptors extends InterceptorsWrapper {
2020
headers: response.headers);
2121
}
2222
} catch (e) {
23-
if (kDebugMode) {
24-
print(e.toString() + option.path);
25-
}
23+
printLog(e.toString() + option.path);
2624
value = ResultData(response.data, false, response.statusCode,
2725
headers: response.headers);
2826
}

lib/common/net/interceptors/token_interceptor.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'package:dio/dio.dart';
2-
import 'package:flutter/foundation.dart';
32
import 'package:gsy_github_app_flutter/common/config/config.dart';
43
import 'package:gsy_github_app_flutter/common/local/local_storage.dart';
4+
import 'package:gsy_github_app_flutter/common/logger.dart';
55
import 'package:gsy_github_app_flutter/common/net/graphql/client.dart';
66

77
/// Token拦截器
@@ -35,9 +35,7 @@ class TokenInterceptors extends InterceptorsWrapper {
3535
await LocalStorage.save(Config.TOKEN_KEY, _token);
3636
}
3737
} catch (e) {
38-
if (kDebugMode) {
39-
print(e);
40-
}
38+
printLog(e);
4139
}
4240
return super.onResponse(response, handler);
4341
}

lib/common/repositories/repos_repository.dart

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import 'dart:io';
44

55
import 'package:built_value/serializer.dart';
66
import 'package:dio/dio.dart';
7-
import 'package:flutter/foundation.dart';
7+
import 'package:gsy_github_app_flutter/common/logger.dart';
88
import 'package:gsy_github_app_flutter/common/net/graphql/client.dart';
99
import 'package:gsy_github_app_flutter/common/net/transformer.dart';
1010
import 'package:gsy_github_app_flutter/common/toast.dart';
@@ -513,10 +513,7 @@ class ReposRepository {
513513
/// 反序列化
514514
Map result = serializers.serializeWith(serializerForType, test)
515515
as Map<dynamic, dynamic>;
516-
if (kDebugMode) {
517-
print("###### $test $result");
518-
}
519-
516+
printLog("###### $test $result");
520517
list.add(data['name']);
521518
}
522519
return DataResult(list, true);
@@ -687,31 +684,23 @@ class ReposRepository {
687684
String? versionName = release.name;
688685
if (versionName != null) {
689686
if (Config.DEBUG!) {
690-
if (kDebugMode) {
691-
print("versionName $versionName");
692-
}
687+
printLog("versionName $versionName");
693688
}
694689

695690
PackageInfo packageInfo = await PackageInfo.fromPlatform();
696691
var appVersion = packageInfo.version;
697692

698693
if (Config.DEBUG!) {
699-
if (kDebugMode) {
700-
print("appVersion $appVersion");
701-
}
694+
printLog("appVersion $appVersion");
702695
}
703696
Version versionNameNum = Version.parse(versionName);
704697
Version currentNum = Version.parse(appVersion);
705698
int result = versionNameNum.compareTo(currentNum);
706699
if (Config.DEBUG!) {
707-
if (kDebugMode) {
708-
print("versionNameNum $versionNameNum currentNum $currentNum");
709-
}
700+
printLog("versionNameNum $versionNameNum currentNum $currentNum");
710701
}
711702
if (Config.DEBUG!) {
712-
if (kDebugMode) {
713-
print("newsHad $result");
714-
}
703+
printLog("newsHad $result");
715704
}
716705
if (result > 0) {
717706
CommonUtils.showUpdateDialog(
@@ -744,9 +733,7 @@ class ReposRepository {
744733
}
745734
}
746735
} catch (e) {
747-
if (kDebugMode) {
748-
print(e);
749-
}
736+
printLog(e);
750737
}
751738
}
752739
return DataResult(null, false);

lib/common/repositories/user_repository.dart

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'dart:convert';
22
import 'package:dio/dio.dart';
3-
import 'package:flutter/foundation.dart';
43
import 'package:flutter_riverpod/flutter_riverpod.dart';
4+
import 'package:gsy_github_app_flutter/common/logger.dart';
55
import 'package:gsy_github_app_flutter/common/net/graphql/client.dart';
66
import 'package:gsy_github_app_flutter/db/provider/user/user_followed_db_provider.dart';
77
import 'package:gsy_github_app_flutter/db/provider/user/user_follower_db_provider.dart';
@@ -45,11 +45,9 @@ class UserRepository {
4545

4646
resultData = await getUserInfo(null);
4747
if (Config.DEBUG!) {
48-
if (kDebugMode) {
49-
print("user result ${resultData.result}");
50-
print(resultData.data);
51-
print(res.data.toString());
52-
}
48+
printLog("user result ${resultData.result}");
49+
printLog(resultData.data);
50+
printLog(res.data.toString());
5351
}
5452
if (resultData.result == true) {
5553
store.dispatch(UpdateUserAction(resultData.data));
@@ -64,9 +62,7 @@ class UserRepository {
6462
var bytes = utf8.encode(type);
6563
var base64Str = base64.encode(bytes);
6664
if (Config.DEBUG!) {
67-
if (kDebugMode) {
68-
print("base64Str login $base64Str");
69-
}
65+
printLog("base64Str login $base64Str");
7066
}
7167

7268
await LocalStorage.save(Config.USER_NAME_KEY, userName);
@@ -87,11 +83,9 @@ class UserRepository {
8783
await LocalStorage.save(Config.PW_KEY, password);
8884
var resultData = await getUserInfo(null);
8985
if (Config.DEBUG!) {
90-
if (kDebugMode) {
91-
print("user result ${resultData.result}");
92-
print(resultData.data);
93-
print(res.data.toString());
94-
}
86+
printLog("user result ${resultData.result}");
87+
printLog(resultData.data);
88+
printLog(res.data.toString());
9589
}
9690
store.dispatch(UpdateUserAction(resultData.data));
9791
}
@@ -198,9 +192,7 @@ class UserRepository {
198192
}
199193
}
200194
} catch (e) {
201-
if (kDebugMode) {
202-
print(e);
203-
}
195+
printLog(e);
204196
}
205197
}
206198
return DataResult(null, false);

lib/common/utils/html_utils.dart

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// ignore_for_file: unnecessary_string_escapes, prefer_adjacent_string_concatenation
22

3-
import 'package:flutter/foundation.dart';
3+
import 'package:gsy_github_app_flutter/common/logger.dart';
44
import 'package:gsy_github_app_flutter/common/style/gsy_style.dart';
55

66
/// Created by guoshuyu
@@ -38,9 +38,7 @@ class HtmlUtils {
3838
mdDataCode = mdDataCode.replaceAll(m.group(0)!, match);
3939
}
4040
} catch (e) {
41-
if (kDebugMode) {
42-
print(e);
43-
}
41+
printLog(e);
4442
}
4543
try {
4644
RegExp exp = RegExp(regExPre);
@@ -52,9 +50,7 @@ class HtmlUtils {
5250
}
5351
}
5452
} catch (e) {
55-
if (kDebugMode) {
56-
print(e);
57-
}
53+
printLog(e);
5854
}
5955

6056
try {
@@ -67,9 +63,7 @@ class HtmlUtils {
6763
}
6864
}
6965
} catch (e) {
70-
if (kDebugMode) {
71-
print(e);
72-
}
66+
printLog(e);
7367
}
7468
try {
7569
RegExp exp = RegExp("href=\"(.*?)\"");
@@ -84,9 +78,7 @@ class HtmlUtils {
8478
}
8579
}
8680
} catch (e) {
87-
if (kDebugMode) {
88-
print(e);
89-
}
81+
printLog(e);
9082
}
9183

9284
return generateCodeHtml(mdDataCode, false,

lib/env/config_wrapper.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'package:flutter/foundation.dart';
22
import 'package:flutter/material.dart';
33
import 'package:gsy_github_app_flutter/common/config/config.dart';
4+
import 'package:gsy_github_app_flutter/common/logger.dart';
45
import 'package:gsy_github_app_flutter/env/env_config.dart';
56

67
///往下共享环境配置
@@ -12,7 +13,7 @@ class ConfigWrapper extends StatelessWidget {
1213
///设置 Config.DEBUG 的静态变量
1314
Config.DEBUG = config?.debug;
1415
if (kDebugMode) {
15-
print("ConfigWrapper build ${Config.DEBUG}");
16+
printLog("ConfigWrapper build ${Config.DEBUG}");
1617
}
1718
return _InheritedConfig(config: config, child: child!);
1819
}

lib/main.dart

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import 'dart:async';
22

3-
import 'package:flutter/foundation.dart';
43
import 'package:flutter/gestures.dart';
54
import 'package:flutter/material.dart';
65
import 'package:gsy_github_app_flutter/app.dart';
6+
import 'package:gsy_github_app_flutter/common/logger.dart';
77
import 'package:gsy_github_app_flutter/env/config_wrapper.dart';
88
import 'package:gsy_github_app_flutter/env/env_config.dart';
99
import 'package:gsy_github_app_flutter/page/error_page.dart';
@@ -25,9 +25,8 @@ void main() {
2525
///屏幕刷新率和显示率不一致时的优化,必须挪动到 runApp 之后
2626
GestureBinding.instance.resamplingEnabled = true;
2727
}, (Object obj, StackTrace stack) {
28-
if (kDebugMode) {
29-
print(obj);
30-
print(stack);
31-
}
28+
talker.error('Catch Dart error:', obj, stack);
29+
printLog(obj);
30+
printLog(stack);
3231
});
3332
}

0 commit comments

Comments
 (0)