加入 连接状态判断 控制台日志输出
This commit is contained in:
@@ -6,6 +6,7 @@ import 'package:EasyDartModule/base/discovery/Discovery.dart';
|
|||||||
import 'package:EasyDartModule/base/discovery/impl/NacosDiscovery.dart';
|
import 'package:EasyDartModule/base/discovery/impl/NacosDiscovery.dart';
|
||||||
import 'package:EasyDartModule/base/http/TraceDio.dart';
|
import 'package:EasyDartModule/base/http/TraceDio.dart';
|
||||||
import 'package:EasyDartModule/base/logger/Logger.dart';
|
import 'package:EasyDartModule/base/logger/Logger.dart';
|
||||||
|
import 'package:EasyDartModule/base/logger/impl/ConsoleLogger.dart';
|
||||||
import 'package:EasyDartModule/base/logger/impl/LokiLogger.dart';
|
import 'package:EasyDartModule/base/logger/impl/LokiLogger.dart';
|
||||||
import 'package:EasyDartModule/base/mqtt/mqtt.dart';
|
import 'package:EasyDartModule/base/mqtt/mqtt.dart';
|
||||||
import 'package:EasyDartModule/base/redis/redis.dart';
|
import 'package:EasyDartModule/base/redis/redis.dart';
|
||||||
@@ -67,7 +68,11 @@ class EasyDartModule {
|
|||||||
}
|
}
|
||||||
if (loggerConfig != null) {
|
if (loggerConfig != null) {
|
||||||
//初始化日志
|
//初始化日志
|
||||||
Logger.setInstance(LokiLogger(loggerConfig));
|
if (loggerConfig.type == LoggerType.LOKI) {
|
||||||
|
Logger.setInstance(LokiLogger(loggerConfig));
|
||||||
|
} else {
|
||||||
|
Logger.setInstance(ConsoleLogger(loggerConfig));
|
||||||
|
}
|
||||||
//web服务器
|
//web服务器
|
||||||
WebServer.setInstance(ShelfWebServer(logger));
|
WebServer.setInstance(ShelfWebServer(logger));
|
||||||
//Dio组件
|
//Dio组件
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ abstract class DataBase {
|
|||||||
_dataBase = database;
|
_dataBase = database;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool isConnected();
|
||||||
|
|
||||||
// 执行查询操作
|
// 执行查询操作
|
||||||
Future<List<Map<String, dynamic>>> query(String table, {dynamic condition});
|
Future<List<Map<String, dynamic>>> query(String table, {dynamic condition});
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,10 @@ class MongoDb implements DataBase {
|
|||||||
connect(false);
|
connect(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool isConnected() {
|
||||||
|
return db.isConnected;
|
||||||
|
}
|
||||||
|
|
||||||
void connect(reconnect) {
|
void connect(reconnect) {
|
||||||
if (reconnect) {
|
if (reconnect) {
|
||||||
print("尝试重连MongoDb");
|
print("尝试重连MongoDb");
|
||||||
|
|||||||
@@ -36,13 +36,33 @@ abstract class Logger {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class LoggerConfig {
|
class LoggerConfig {
|
||||||
|
LoggerType type;
|
||||||
String host;
|
String host;
|
||||||
String serviceName;
|
String serviceName;
|
||||||
Map<String, String>? lables;
|
Map<String, String>? lables;
|
||||||
bool print;
|
bool print;
|
||||||
LoggerConfig(
|
LoggerConfig(
|
||||||
{required this.host,
|
{this.host = "",
|
||||||
required this.serviceName,
|
this.serviceName = "",
|
||||||
|
this.type = LoggerType.LOKI,
|
||||||
this.print = false,
|
this.print = false,
|
||||||
this.lables});
|
this.lables});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum LoggerType {
|
||||||
|
LOKI,
|
||||||
|
CONSOLSE,
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum LoggerLevel {
|
||||||
|
debug(1),
|
||||||
|
info(2),
|
||||||
|
warning(3),
|
||||||
|
error(4),
|
||||||
|
off(5),
|
||||||
|
;
|
||||||
|
|
||||||
|
final int level;
|
||||||
|
const LoggerLevel(this.level);
|
||||||
|
}
|
||||||
|
|||||||
93
lib/base/logger/impl/ConsoleLogger.dart
Normal file
93
lib/base/logger/impl/ConsoleLogger.dart
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
import 'package:EasyDartModule/base/logger/Logger.dart';
|
||||||
|
import 'package:intl/intl.dart';
|
||||||
|
|
||||||
|
class ConsoleLogger implements Logger {
|
||||||
|
final LoggerConfig _config;
|
||||||
|
LoggerLevel level = LoggerLevel.info;
|
||||||
|
|
||||||
|
ConsoleLogger(this._config);
|
||||||
|
|
||||||
|
@override
|
||||||
|
void debug(String msg,
|
||||||
|
{String? tag,
|
||||||
|
String? traceId,
|
||||||
|
String? spanId,
|
||||||
|
String? parentSpanId,
|
||||||
|
Map<String, String>? lable}) {
|
||||||
|
log(msg,
|
||||||
|
level: LoggerLevel.debug,
|
||||||
|
tag: tag,
|
||||||
|
traceId: traceId,
|
||||||
|
spanId: spanId,
|
||||||
|
parentSpanId: parentSpanId,
|
||||||
|
lable: lable);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void error(String msg,
|
||||||
|
{String? tag,
|
||||||
|
String? traceId,
|
||||||
|
String? spanId,
|
||||||
|
String? parentSpanId,
|
||||||
|
Map<String, String>? lable}) {
|
||||||
|
log(msg,
|
||||||
|
level: LoggerLevel.error,
|
||||||
|
tag: tag,
|
||||||
|
traceId: traceId,
|
||||||
|
spanId: spanId,
|
||||||
|
parentSpanId: parentSpanId,
|
||||||
|
lable: lable);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void info(String msg,
|
||||||
|
{String? tag,
|
||||||
|
String? traceId,
|
||||||
|
String? spanId,
|
||||||
|
String? parentSpanId,
|
||||||
|
Map<String, String>? lable}) {
|
||||||
|
log(msg,
|
||||||
|
level: LoggerLevel.info,
|
||||||
|
tag: tag,
|
||||||
|
traceId: traceId,
|
||||||
|
spanId: spanId,
|
||||||
|
parentSpanId: parentSpanId,
|
||||||
|
lable: lable);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void warning(String msg,
|
||||||
|
{String? tag,
|
||||||
|
String? traceId,
|
||||||
|
String? spanId,
|
||||||
|
String? parentSpanId,
|
||||||
|
Map<String, String>? lable}) {
|
||||||
|
log(msg,
|
||||||
|
level: LoggerLevel.warning,
|
||||||
|
tag: tag,
|
||||||
|
traceId: traceId,
|
||||||
|
spanId: spanId,
|
||||||
|
parentSpanId: parentSpanId,
|
||||||
|
lable: lable);
|
||||||
|
}
|
||||||
|
|
||||||
|
void log(String msg,
|
||||||
|
{required LoggerLevel level,
|
||||||
|
String? tag,
|
||||||
|
String? traceId,
|
||||||
|
String? spanId,
|
||||||
|
String? parentSpanId,
|
||||||
|
Map<String, String>? lable}) {
|
||||||
|
if (level.level < this.level.level) {
|
||||||
|
//日志等级小于设置的输出日志等级
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String time = DateFormat("yyyy-MM-dd HH:mm:ss").format(DateTime.now().toUtc().add(Duration(hours: 8)));
|
||||||
|
String log =
|
||||||
|
"$time traceId=$traceId, spanId=$spanId parentSpanId=$parentSpanId tag=$tag ${level.name.toUpperCase()} $msg";
|
||||||
|
if (level == LoggerLevel.debug || _config.print) {
|
||||||
|
print(log);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,18 +5,6 @@ import 'dart:io';
|
|||||||
import 'package:EasyDartModule/base/logger/Logger.dart';
|
import 'package:EasyDartModule/base/logger/Logger.dart';
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
|
|
||||||
enum LoggerLevel {
|
|
||||||
debug(1),
|
|
||||||
info(2),
|
|
||||||
warning(3),
|
|
||||||
error(4),
|
|
||||||
off(5),
|
|
||||||
;
|
|
||||||
|
|
||||||
final int level;
|
|
||||||
const LoggerLevel(this.level);
|
|
||||||
}
|
|
||||||
|
|
||||||
class LokiLogger implements Logger {
|
class LokiLogger implements Logger {
|
||||||
final LoggerConfig? _config;
|
final LoggerConfig? _config;
|
||||||
final Dio dio;
|
final Dio dio;
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import 'package:typed_data/src/typed_buffer.dart';
|
|||||||
class Mqtt {
|
class Mqtt {
|
||||||
final MqttConfig _config;
|
final MqttConfig _config;
|
||||||
MqttClient? _client;
|
MqttClient? _client;
|
||||||
|
bool _connected = false;
|
||||||
//标记是否自动重连
|
//标记是否自动重连
|
||||||
bool reconnect = true;
|
bool reconnect = true;
|
||||||
//缓存自定义主题订阅信息
|
//缓存自定义主题订阅信息
|
||||||
@@ -26,10 +27,12 @@ class Mqtt {
|
|||||||
// _client?.autoReconnect = true;
|
// _client?.autoReconnect = true;
|
||||||
_client?.onConnected = () {
|
_client?.onConnected = () {
|
||||||
// print("aa:mqtt服务器连接成功");
|
// print("aa:mqtt服务器连接成功");
|
||||||
|
_connected = true;
|
||||||
print("mqtt服务器: ${_config.host} 连接成功");
|
print("mqtt服务器: ${_config.host} 连接成功");
|
||||||
};
|
};
|
||||||
_client?.onDisconnected = () {
|
_client?.onDisconnected = () {
|
||||||
// print("aa:mqtt服务器连接断开");
|
// print("aa:mqtt服务器连接断开");
|
||||||
|
_connected = false;
|
||||||
print("mqtt服务器: ${_config.host} 连接断开");
|
print("mqtt服务器: ${_config.host} 连接断开");
|
||||||
//执行重连操作
|
//执行重连操作
|
||||||
if (reconnect) {
|
if (reconnect) {
|
||||||
@@ -48,6 +51,10 @@ class Mqtt {
|
|||||||
_mqtt = server;
|
_mqtt = server;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool isConnected() {
|
||||||
|
return this._connected;
|
||||||
|
}
|
||||||
|
|
||||||
Future<bool> connect({bool reconnect = false}) async {
|
Future<bool> connect({bool reconnect = false}) async {
|
||||||
if (reconnect) {
|
if (reconnect) {
|
||||||
//限制重连速率
|
//限制重连速率
|
||||||
|
|||||||
Reference in New Issue
Block a user