diff --git a/lib/base/database/impl/MongoDb.dart b/lib/base/database/impl/MongoDb.dart index 8582767..6055207 100644 --- a/lib/base/database/impl/MongoDb.dart +++ b/lib/base/database/impl/MongoDb.dart @@ -1,5 +1,3 @@ -import 'dart:io'; - import 'package:EasyDartModule/base/database/DataBase.dart'; import 'package:mongo_dart/mongo_dart.dart'; @@ -52,7 +50,13 @@ class MongoDb implements DataBase { if (condition == null) { return await getCollection(table).find().toList(); } - return await getCollection(table).find(condition).toList(); + if (condition is AggregationPipelineBuilder) { + return await getCollection(table) + .aggregateToStream(condition.build()) + .toList(); + } else { + return await getCollection(table).find(condition).toList(); + } } @override diff --git a/lib/base/http/TraceDio.dart b/lib/base/http/TraceDio.dart index 243a286..c95e102 100644 --- a/lib/base/http/TraceDio.dart +++ b/lib/base/http/TraceDio.dart @@ -18,7 +18,7 @@ class TraceDio { // 设置连接超时 _dio.options.connectTimeout = Duration(seconds: 60); // 设置接收超时 - _dio.options.receiveTimeout = Duration(seconds: 60); + _dio.options.receiveTimeout = Duration(seconds: 5 * 60); //保留原始大小写 _dio.options.preserveHeaderCase = true; @@ -103,12 +103,18 @@ class TraceDio { sf.Request? request, ResponseType? responseType, Duration? receiveTimeout}) async { - return await _dio.get(url, - queryParameters: queryParameters, - options: Options( - receiveTimeout: receiveTimeout, - headers: getHeader(request: request), - responseType: responseType)); + try { + return await _dio.get(url, + queryParameters: queryParameters, + options: Options( + receiveTimeout: receiveTimeout, + headers: getHeader(request: request), + responseType: responseType)); + } catch (e) { + //api接口报错 + var a = e as DioException; + return a.response!; + } } // 发起 POST 请求 diff --git a/lib/base/logger/Logger.dart b/lib/base/logger/Logger.dart index 5d89616..8ff8760 100644 --- a/lib/base/logger/Logger.dart +++ b/lib/base/logger/Logger.dart @@ -10,13 +10,29 @@ abstract class Logger { } void debug(String msg, - {String? tag, String? traceId, String? spanId, String? parentSpanId}); + {String? tag, + String? traceId, + String? spanId, + String? parentSpanId, + Map? lable}); void info(String msg, - {String? tag, String? traceId, String? spanId, String? parentSpanId}); + {String? tag, + String? traceId, + String? spanId, + String? parentSpanId, + Map? lable}); void warning(String msg, - {String? tag, String? traceId, String? spanId, String? parentSpanId}); + {String? tag, + String? traceId, + String? spanId, + String? parentSpanId, + Map? lable}); void error(String msg, - {String? tag, String? traceId, String? spanId, String? parentSpanId}); + {String? tag, + String? traceId, + String? spanId, + String? parentSpanId, + Map? lable}); } class LoggerConfig { diff --git a/lib/base/logger/impl/LokiLogger.dart b/lib/base/logger/impl/LokiLogger.dart index 6559080..e840414 100644 --- a/lib/base/logger/impl/LokiLogger.dart +++ b/lib/base/logger/impl/LokiLogger.dart @@ -35,46 +35,66 @@ class LokiLogger implements Logger { } @override void debug(String msg, - {String? tag, String? traceId, String? spanId, String? parentSpanId}) { + {String? tag, + String? traceId, + String? spanId, + String? parentSpanId, + Map? lable}) { log(msg, level: LoggerLevel.debug, tag: tag, traceId: traceId, spanId: spanId, - parentSpanId: parentSpanId); + parentSpanId: parentSpanId, + lable: lable); } @override void info(String msg, - {String? tag, String? traceId, String? spanId, String? parentSpanId}) { + {String? tag, + String? traceId, + String? spanId, + String? parentSpanId, + Map? lable}) { log(msg, level: LoggerLevel.info, tag: tag, traceId: traceId, spanId: spanId, - parentSpanId: parentSpanId); + parentSpanId: parentSpanId, + lable: lable); } @override void warning(String msg, - {String? tag, String? traceId, String? spanId, String? parentSpanId}) { + {String? tag, + String? traceId, + String? spanId, + String? parentSpanId, + Map? lable}) { log(msg, level: LoggerLevel.warning, tag: tag, traceId: traceId, spanId: spanId, - parentSpanId: parentSpanId); + parentSpanId: parentSpanId, + lable: lable); } @override void error(String msg, - {String? tag, String? traceId, String? spanId, String? parentSpanId}) { + {String? tag, + String? traceId, + String? spanId, + String? parentSpanId, + Map? lable}) { log(msg, level: LoggerLevel.error, tag: tag, traceId: traceId, spanId: spanId, - parentSpanId: parentSpanId); + parentSpanId: parentSpanId, + lable: lable); } void log(String msg, @@ -82,7 +102,8 @@ class LokiLogger implements Logger { String? tag, String? traceId, String? spanId, - String? parentSpanId}) { + String? parentSpanId, + Map? lable}) { if (level.level < this.level.level) { //日志等级小于设置的输出日志等级 return; @@ -97,15 +118,14 @@ class LokiLogger implements Logger { var now = DateTime.now(); // 转换为纳秒 int nanoseconds = now.microsecondsSinceEpoch * 1000; + var lableMap = {"service_name": _config.serviceName}; + if (lable != null) { + lableMap.addAll(lable); + } var data = jsonEncode({ "streams": [ { - "stream": { - "service_name": _config.serviceName, - // "traceId": traceId, - // "spanId": spanId, - // "parentSpanId": parentSpanId - }, + "stream": lableMap, "values": [ [nanoseconds.toString(), log] ]