diff --git a/README.md b/README.md
index e4df6721..ff498098 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-# toolbox
+# Server Monitor & Toolbox
-A new Flutter project.
+A new Flutter project which provide a chart view to display server status data.
## ScreenShots
@@ -14,3 +14,15 @@ A new Flutter project.
+## Milestone
+- [x] SSH Connect
+- [x] Server Info Store
+- [x] Status Chart View
+- [x] Base64/Url En/Decode
+- [ ] Private Key Store
+- [ ] Server Status Detail Page
+- [ ] Theme Switch
+- [ ] Custom Home Page
+
+## License
+`Apache License. LollipopKit 2021`
diff --git a/lib/data/provider/server.dart b/lib/data/provider/server.dart
index 5cb4e60f..43044682 100644
--- a/lib/data/provider/server.dart
+++ b/lib/data/provider/server.dart
@@ -1,5 +1,6 @@
import 'dart:async';
+import 'package:logging/logging.dart';
import 'package:ssh2/ssh2.dart';
import 'package:toolbox/core/extension/stringx.dart';
import 'package:toolbox/core/provider_base.dart';
@@ -15,6 +16,8 @@ class ServerProvider extends BusyProvider {
List _servers = [];
List get servers => _servers;
+ final logger = Logger('ServerProvider');
+
ServerStatus get emptyStatus => ServerStatus(
cpuPercent: 0,
memList: [100, 0],
@@ -92,7 +95,11 @@ class ServerProvider extends BusyProvider {
final client = _servers[idx].client;
final connected = await client.isConnected();
if (!connected) {
+ final time1 = DateTime.now();
await client.connect();
+ final time2 = DateTime.now();
+ logger.info(
+ 'Connected to [${info.name}] in [${time2.difference(time1).toString()}].');
}
final cpu = await client.execute(
"top -bn1 | grep load | awk '{printf \"%.2f\", \$(NF-2)}'") ??
diff --git a/lib/data/res/build_data.dart b/lib/data/res/build_data.dart
index 35a6045f..b8981b18 100644
--- a/lib/data/res/build_data.dart
+++ b/lib/data/res/build_data.dart
@@ -2,9 +2,9 @@
class BuildData {
static const String name = "ToolBox";
- static const int build = 15;
+ static const int build = 18;
static const String engine =
- "Flutter 2.5.1 • channel stable • https://github.com/flutter/flutter.git\nFramework • revision ffb2ecea52 (2 weeks ago) • 2021-09-17 15:26:33 -0400\nEngine • revision b3af521a05\nTools • Dart 2.14.2\n";
- static const String buildAt = "2021-10-02 19:52:07.676336";
- static const int modifications = 71;
+ "Flutter 2.5.3 • channel stable • https://github.com/flutter/flutter.git\nFramework • revision 18116933e7 (10 days ago) • 2021-10-15 10:46:35 -0700\nEngine • revision d3ea636dc5\nTools • Dart 2.14.4\n";
+ static const String buildAt = "2021-10-25 16:56:13.551427";
+ static const int modifications = 0;
}
diff --git a/lib/main.dart b/lib/main.dart
index f1a0fa15..272992b2 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -2,6 +2,7 @@ import 'dart:async';
import 'package:flutter/material.dart';
import 'package:hive_flutter/hive_flutter.dart';
+import 'package:logging/logging.dart';
import 'package:provider/provider.dart';
import 'package:toolbox/app.dart';
import 'package:toolbox/core/analysis.dart';
@@ -13,7 +14,13 @@ import 'package:toolbox/locator.dart';
Future initApp() async {
await Hive.initFlutter();
await setupLocator();
- locator().loadLocalData();
+
+ ///设置Logger
+ Logger.root.level = Level.ALL; // defaults to Level.INFO
+ Logger.root.onRecord.listen((record) {
+ // ignore: avoid_print
+ print('[${record.loggerName}][${record.level.name}]: ${record.message}');
+ });
}
void runInZone(dynamic Function() body) {
diff --git a/pubspec.lock b/pubspec.lock
index 487b7a86..69840ccb 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -222,7 +222,7 @@ packages:
source: hosted
version: "1.0.1"
logging:
- dependency: transitive
+ dependency: "direct main"
description:
name: logging
url: "https://pub.dartlang.org"
diff --git a/pubspec.yaml b/pubspec.yaml
index 7f2ae802..f7346c4c 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -45,6 +45,7 @@ dependencies:
ref: master
ssh2: ^2.2.3
charts_flutter: ^0.11.0
+ logging: ^1.0.2
dev_dependencies: