Flutter Elasticsearch服务插件pip_services3_elasticsearch的使用
Flutter Elasticsearch服务插件pip_services3_elasticsearch的使用
此模块是Pip.Services多语言微服务工具包的一部分。
Elasticsearch 模块包含数据存储在 Elasticsearch 服务器上的日志组件。
该模块包含以下软件包:
- Build - 包含用于构建组件的工厂
- Log - 日志组件
快速链接:
使用
将以下内容添加到您的 pubspec.yaml
文件中:
dependencies:
pip_services3_elasticsearch: version
现在您可以从命令行安装包:
pub get
微服务组件应该像使用 CompositeLogger 组件一样进行日志记录。 CompositeLogger 会从引用中获取 ElasticSearchLogger,并将日志消息重定向到其他目的地。
class MyComponent implements IConfigurable, IReferenceable {
CompositeLogger _logger = new CompositeLogger();
configure(ConfigParams config) {
this._logger.configure(config);
}
setReferences(IReferences refs) {
this._logger.setReferences(refs);
}
myMethod(String? correlationId, param1) {
this._logger.trace(correlationId, "Executed method mycomponent.mymethod");
....
}
}
包含 Elasticsearch 日志记录器的微服务配置可能如下所示:
...
{{#if ELASTICSEARCH_ENABLED}}
- descriptor: pip-services:logger:elasticsearch:default:1.0
connection:
uri: {{{ELASTICSEARCG_SERVICE_URI}}}
host: {{{ELASTICSEARCH_SERVICE_HOST}}}{{#unless ELASTICSEARCH_SERVICE_HOST}}localhost{{/unless}}
port: {{ELASTICSEARCG_SERVICE_PORT}}{{#unless ELASTICSEARCH_SERVICE_PORT}}9200{{/unless}}\
{{/if}}
...
开发
对于开发,您需要安装以下前提条件:
- Dart SDK 2
- Visual Studio Code 或其他您选择的 IDE
- Docker
安装依赖项:
pub get
运行自动化测试:
pub run test
生成 API 文档:
./docgen.ps1
在提交更改之前,运行容器化的构建和测试:
./build.ps1
./test.ps1
./clear.ps1
联系方式
该库由以下人员创建和维护:
- Sergey Seroukhov
- Levichev Dmitry
文档由以下人员编写:
- Mark Makarychev
- Levichev Dmitry
示例代码
以下是完整的示例代码:
import 'dart:io';
import 'package:pip_services3_commons/pip_services3_commons.dart';
import 'package:pip_services3_components/pip_services3_components.dart';
import 'package:pip_services3_elasticsearch/pip_services3_elasticsearch.dart';
void main() async {
var host = Platform.environment['ELASTICSEARCH_SERVICE_HOST'] ?? 'localhost';
var port = Platform.environment['ELASTICSEARCH_SERVICE_PORT'] ?? 9200;
var dateFormat = 'yyyyMMdd';
var _logger = ElasticSearchLogger();
var config = ConfigParams.fromTuples([
'source',
'test',
'index',
'log',
'daily',
true,
'date_format',
dateFormat,
'connection.host',
host,
'connection.port',
port
]);
_logger.configure(config);
await _logger.open(null);
_logger.setLevel(LogLevel.Trace);
_logger.fatal(null, null, 'Fatal error message');
_logger.error(null, null, 'Error message');
_logger.warn(null, 'Warning message');
_logger.info(null, 'Information message');
_logger.debug(null, 'Debug message');
_logger.trace(null, 'Trace message');
try {
// 抛出异常
throw Exception('Test error');
} catch (err) {
var ex = ApplicationException().wrap(err);
_logger.fatal('123', ex, 'Fatal error');
_logger.error('123', ex, 'Recoverable error');
}
_logger.dump();
await _logger.close(null);
}
更多关于Flutter Elasticsearch服务插件pip_services3_elasticsearch的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter Elasticsearch服务插件pip_services3_elasticsearch的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
pip_services3_elasticsearch
是一个用于在 Flutter 应用中与 Elasticsearch 进行交互的服务插件。它是 pip_services3
生态系统的一部分,旨在为开发者提供简单、灵活且可扩展的日志记录和监控功能。
以下是如何在 Flutter 项目中使用 pip_services3_elasticsearch
插件的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 pip_services3_elasticsearch
依赖:
dependencies:
pip_services3_elasticsearch: ^1.0.0
然后运行 flutter pub get
来获取依赖。
2. 导入库
在你的 Dart 文件中导入 pip_services3_elasticsearch
:
import 'package:pip_services3_elasticsearch/elasticsearch.dart';
3. 配置 Elasticsearch 服务
创建一个 ElasticsearchLogger
实例并配置 Elasticsearch 的连接参数:
var logger = ElasticsearchLogger();
logger.configure(ConfigParams.fromTuples([
'connection.host', 'localhost',
'connection.port', 9200,
'index', 'my_index',
'date_format', 'YYYY.MM.DD',
'template', '{}'
]));
4. 打开连接
在发送日志之前,需要打开与 Elasticsearch 的连接:
await logger.open(null);
5. 记录日志
使用 log
方法记录日志:
logger.log(LogLevel.Info, '123', 'MyComponent', 'My message');
6. 关闭连接
在应用结束或不再需要记录日志时,关闭连接:
await logger.close(null);
7. 完整示例
以下是一个完整的示例,展示了如何使用 pip_services3_elasticsearch
插件记录日志:
import 'package:pip_services3_elasticsearch/elasticsearch.dart';
import 'package:pip_services3_commons/pip_services3_commons.dart';
void main() async {
var logger = ElasticsearchLogger();
logger.configure(ConfigParams.fromTuples([
'connection.host', 'localhost',
'connection.port', 9200,
'index', 'my_index',
'date_format', 'YYYY.MM.DD',
'template', '{}'
]));
await logger.open(null);
logger.log(LogLevel.Info, '123', 'MyComponent', 'My message');
await logger.close(null);
}
8. 高级配置
你可以进一步配置 ElasticsearchLogger
,例如设置日志级别、自定义日志模板等。更多详细信息可以参考 pip_services3_elasticsearch
的官方文档或源代码。
9. 错误处理
在实际应用中,建议添加错误处理逻辑,以处理连接失败或日志记录失败的情况。
try {
await logger.open(null);
logger.log(LogLevel.Info, '123', 'MyComponent', 'My message');
} catch (e) {
print('Error: $e');
} finally {
await logger.close(null);
}