Flutter Elasticsearch服务插件pip_services4_elasticsearch的使用
Flutter Elasticsearch服务插件pip_services4_elasticsearch的使用
该模块是Pip.Services多语言微服务工具包的一部分。
ElasticSearch模块包含在ElasticSearch服务器上存储数据的日志组件。
该模块包含以下软件包:
- Build - 包含用于构建组件的工厂
- Log - 日志组件
使用
在你的项目的pubspec.yaml
文件中添加以下依赖项:
dependencies:
pip_services4_elasticsearch: ^版本号
现在你可以从命令行安装包:
flutter packages get
微服务组件应使用CompositeLogger组件进行常规日志记录。CompositeLogger将从引用中获取ElasticSearchLogger,并会将日志消息重定向到其他目标。
class MyComponent implements IConfigurable, IReferenceable {
CompositeLogger _logger = new CompositeLogger();
void configure(ConfigParams config) {
this._logger.configure(config);
}
void setReferences(IReferences refs) {
this._logger.setReferences(refs);
}
void myMethod(IContext? context, param1) {
this._logger.trace(context, "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 3
- Visual Studio Code 或其他你选择的IDE
- Docker
安装依赖项:
flutter packages get
运行自动化测试:
flutter packages run test
生成API文档:
./docgen.ps1
在提交更改之前,运行docker化的构建和测试:
./build.ps1
./test.ps1
./clear.ps1
联系方式
该库由以下人员创建和维护:
- Sergey Seroukhov
- Levichev Dmitry
文档由以下人员编写:
- Mark Makarychev
- Levichev Dmitry
完整示例Demo
以下是一个完整的示例Demo,展示了如何使用ElasticSearch日志记录器。
import 'dart:io';
import 'package:pip_services4_commons/pip_services4_commons.dart';
import 'package:pip_services4_components/pip_services4_components.dart';
import 'package:pip_services4_elasticsearch/pip_services4_elasticsearch.dart';
import 'package:pip_services4_observability/pip_services4_observability.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(Context.fromTraceId('123'), ex, 'Fatal error');
_logger.error(Context.fromTraceId('123'), ex, 'Recoverable error');
}
_logger.dump();
await _logger.close(null);
}
更多关于Flutter Elasticsearch服务插件pip_services4_elasticsearch的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter Elasticsearch服务插件pip_services4_elasticsearch的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
pip_services4_elasticsearch
是一个用于在 Flutter 应用中与 Elasticsearch 进行交互的插件。它提供了一组组件和工具,帮助开发者轻松地在 Flutter 应用中集成 Elasticsearch 服务。
以下是使用 pip_services4_elasticsearch
插件的基本步骤:
1. 安装依赖
首先,你需要在 pubspec.yaml
文件中添加 pip_services4_elasticsearch
插件的依赖:
dependencies:
pip_services4_elasticsearch: ^1.0.0
然后运行 flutter pub get
来安装依赖。
2. 配置 Elasticsearch 连接
在你的 Flutter 应用中,你需要配置 Elasticsearch 的连接信息。通常,你需要提供 Elasticsearch 的 URI 和认证信息(如果需要)。
import 'package:pip_services4_elasticsearch/elasticsearch/ElasticSearchConnection.dart';
void main() async {
var connection = ElasticSearchConnection(
uri: 'http://localhost:9200',
username: 'your_username',
password: 'your_password',
);
await connection.open(null);
}
3. 使用 Elasticsearch 服务
一旦配置好连接,你就可以使用 ElasticSearchService
来与 Elasticsearch 进行交互。以下是一个简单的示例,演示如何索引和搜索文档:
import 'package:pip_services4_elasticsearch/elasticsearch/ElasticSearchService.dart';
void main() async {
var service = ElasticSearchService();
// 配置服务
service.configure(ConfigParams.fromTuples([
'connection.uri', 'http://localhost:9200',
'connection.username', 'your_username',
'connection.password', 'your_password',
]));
// 打开服务
await service.open(null);
// 索引文档
await service.index('my_index', 'my_type', '1', {'field': 'value'});
// 搜索文档
var result = await service.search('my_index', {
'query': {
'match': {
'field': 'value'
}
}
});
print(result);
// 关闭服务
await service.close(null);
}
4. 处理错误和日志
pip_services4_elasticsearch
提供了日志记录和错误处理的功能。你可以使用 CompositeLogger
和 CompositeCounters
来记录日志和统计信息。
import 'package:pip_services4_components/log/CompositeLogger.dart';
import 'package:pip_services4_components/count/CompositeCounters.dart';
void main() async {
var logger = CompositeLogger();
var counters = CompositeCounters();
var service = ElasticSearchService();
service.setReferences(References.fromTuples([
Descriptor('pip-services', 'logger', 'console', 'default', '1.0'), logger,
Descriptor('pip-services', 'counters', 'log', 'default', '1.0'), counters,
]));
// 打开服务
await service.open(null);
// 使用服务...
// 关闭服务
await service.close(null);
}