Browse Source

调整ES日志查询

pull/16/head
王军 4 years ago
parent
commit
e5e91211cc
  1. 25
      aspnet-core/CompanyName.ProjectName.sln
  2. 2
      aspnet-core/gateways/CompanyName.ProjectName.WebGateway/Properties/launchSettings.json
  3. 2
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Properties/launchSettings.json
  4. 2
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/appsettings.Development.json
  5. 1
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/CompanyName.ProjectName.Application.Contracts.csproj
  6. 0
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/ElasticSearchs/Dto/PagingElasticSearchLogInput.cs
  7. 26
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/ElasticSearchs/Dto/PagingElasticSearchLogOutput.cs
  8. 45
      aspnet-core/services/src/CompanyName.ProjectName.Application/CompanyName.ProjectName.Application.csproj
  9. 65
      aspnet-core/services/src/CompanyName.ProjectName.Application/ElasticSearchs/CompanyNameProjectNameLogAppService.cs
  10. 32
      aspnet-core/services/src/CompanyName.ProjectName.Application/ElasticSearchs/Dto/PagingElasticSearchLogDto.cs
  11. 18
      aspnet-core/services/src/CompanyName.ProjectName.Application/ElasticSearchs/Providers/ElasticsearchBasicService.cs
  12. 29
      aspnet-core/services/src/CompanyName.ProjectName.Application/ElasticSearchs/Providers/ElasticsearchProvider.cs
  13. 10
      aspnet-core/services/src/CompanyName.ProjectName.Application/ElasticSearchs/Providers/IElasticsearchProvider.cs
  14. 4
      aspnet-core/services/src/CompanyName.ProjectName.Application/IdentityServers/IdentityServerApplicationAutoMapperProfile.cs
  15. 4
      aspnet-core/services/src/CompanyName.ProjectName.Application/ProjectNameApplicationModule.cs
  16. 15
      aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository.Shared/CompanyName.ProjectName.ElasticsearchRepository.Shared.csproj
  17. 14
      aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository.Shared/Dto/PagingElasticSearchLogInput.cs
  18. 4
      aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository.Shared/Dto/PagingElasticSearchLogOutput.cs
  19. 0
      aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository.Shared/ICompanyNameProjectNameLogRepository.cs
  20. 9
      aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository.Shared/ProjectNameElasticSearchSharedModule.cs
  21. 13
      aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository/CompanyName.ProjectName.ElasticsearchRepository.csproj

25
aspnet-core/CompanyName.ProjectName.sln

@ -109,7 +109,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CompanyName.ProjectName.Dat
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "host", "host", "{5AACD0EE-F2B2-49F6-868F-8FE08D7243C0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CompanyName.ProjectName.DataDictionaryManagement.HttpApi.Host", "modules\DataDictionaryManagement\host\CompanyName.ProjectName.DataDictionaryManagement.HttpApi.Host\CompanyName.ProjectName.DataDictionaryManagement.HttpApi.Host.csproj", "{8D196E3D-6F95-4793-B948-79669AF09017}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CompanyName.ProjectName.DataDictionaryManagement.HttpApi.Host", "modules\DataDictionaryManagement\host\CompanyName.ProjectName.DataDictionaryManagement.HttpApi.Host\CompanyName.ProjectName.DataDictionaryManagement.HttpApi.Host.csproj", "{8D196E3D-6F95-4793-B948-79669AF09017}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "host", "host", "{8C1B8C6C-C518-4290-B070-622CCA6004DA}"
EndProject
@ -117,27 +117,25 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CAP", "CAP", "{2C09EED0-5AF
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{11ED8435-B5AE-4BF3-9D4B-51FA1E4A18A6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CompanyName.ProjectName.HttpApi.Host", "services\host\CompanyName.ProjectName.HttpApi.Host\CompanyName.ProjectName.HttpApi.Host.csproj", "{FB20372D-6C96-4733-9AAC-12522F15CAA6}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CompanyName.ProjectName.HttpApi.Host", "services\host\CompanyName.ProjectName.HttpApi.Host\CompanyName.ProjectName.HttpApi.Host.csproj", "{FB20372D-6C96-4733-9AAC-12522F15CAA6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CompanyName.ProjectName.IdentityServer", "services\host\CompanyName.ProjectName.IdentityServer\CompanyName.ProjectName.IdentityServer.csproj", "{FB1C29FF-5467-4CF0-995D-5B3F931AB135}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CompanyName.ProjectName.IdentityServer", "services\host\CompanyName.ProjectName.IdentityServer\CompanyName.ProjectName.IdentityServer.csproj", "{FB1C29FF-5467-4CF0-995D-5B3F931AB135}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "shared", "shared", "{6434E3F2-B352-4B30-839A-88C2BA166D96}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CompanyName.ProjectName.Shared.Hosting.Microservices", "shared\CompanyName.ProjectName.Shared.Hosting.Microservices\CompanyName.ProjectName.Shared.Hosting.Microservices.csproj", "{A091AE9B-3A1E-49AC-9AD5-D29310512A3D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CompanyName.ProjectName.Shared.Hosting.Microservices", "shared\CompanyName.ProjectName.Shared.Hosting.Microservices\CompanyName.ProjectName.Shared.Hosting.Microservices.csproj", "{A091AE9B-3A1E-49AC-9AD5-D29310512A3D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CompanyName.ProjectName.Shared.Hosting.Gateways", "shared\CompanyName.ProjectName.Shared.Hosting.Gateways\CompanyName.ProjectName.Shared.Hosting.Gateways.csproj", "{C018EFF9-579E-43B3-9181-543BE95E2E03}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CompanyName.ProjectName.Shared.Hosting.Gateways", "shared\CompanyName.ProjectName.Shared.Hosting.Gateways\CompanyName.ProjectName.Shared.Hosting.Gateways.csproj", "{C018EFF9-579E-43B3-9181-543BE95E2E03}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gateways", "gateways", "{5C304CBC-F30D-413C-A0AF-8B6814A2D4A3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CompanyName.ProjectName.WebGateway", "gateways\CompanyName.ProjectName.WebGateway\CompanyName.ProjectName.WebGateway.csproj", "{D9108313-8D05-4F5F-9AA0-B443EC3374B6}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CompanyName.ProjectName.WebGateway", "gateways\CompanyName.ProjectName.WebGateway\CompanyName.ProjectName.WebGateway.csproj", "{D9108313-8D05-4F5F-9AA0-B443EC3374B6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CompanyName.ProjectName.FreeSqlRepository", "services\src\CompanyName.ProjectName.FreeSqlRepository\CompanyName.ProjectName.FreeSqlRepository.csproj", "{FC30B17B-F671-4E55-90C6-9F37E40B483D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CompanyName.ProjectName.FreeSqlRepository", "services\src\CompanyName.ProjectName.FreeSqlRepository\CompanyName.ProjectName.FreeSqlRepository.csproj", "{FC30B17B-F671-4E55-90C6-9F37E40B483D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CompanyName.ProjectName.ElasticsearchRepository", "services\src\CompanyName.ProjectName.ElasticsearchRepository\CompanyName.ProjectName.ElasticsearchRepository.csproj", "{5910B07F-1520-45D6-A15F-7A3E0698BE18}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CompanyName.ProjectName.Extension", "frameworks\Extensions\src\CompanyName.ProjectName.Extension\CompanyName.ProjectName.Extension.csproj", "{4C65690E-2C17-46A1-BB35-A51BAB2EA3B7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CompanyName.ProjectName.Extension", "frameworks\Extensions\src\CompanyName.ProjectName.Extension\CompanyName.ProjectName.Extension.csproj", "{4C65690E-2C17-46A1-BB35-A51BAB2EA3B7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CompanyName.ProjectName.CAP", "frameworks\CAP\src\CompanyName.ProjectName.CAP\CompanyName.ProjectName.CAP.csproj", "{3C3FF821-E43D-4D58-8B3C-1E97F4518EF7}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CompanyName.ProjectName.CAP", "frameworks\CAP\src\CompanyName.ProjectName.CAP\CompanyName.ProjectName.CAP.csproj", "{3C3FF821-E43D-4D58-8B3C-1E97F4518EF7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -313,10 +311,6 @@ Global
{FC30B17B-F671-4E55-90C6-9F37E40B483D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FC30B17B-F671-4E55-90C6-9F37E40B483D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FC30B17B-F671-4E55-90C6-9F37E40B483D}.Release|Any CPU.Build.0 = Release|Any CPU
{5910B07F-1520-45D6-A15F-7A3E0698BE18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5910B07F-1520-45D6-A15F-7A3E0698BE18}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5910B07F-1520-45D6-A15F-7A3E0698BE18}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5910B07F-1520-45D6-A15F-7A3E0698BE18}.Release|Any CPU.Build.0 = Release|Any CPU
{4C65690E-2C17-46A1-BB35-A51BAB2EA3B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4C65690E-2C17-46A1-BB35-A51BAB2EA3B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4C65690E-2C17-46A1-BB35-A51BAB2EA3B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -386,7 +380,6 @@ Global
{C018EFF9-579E-43B3-9181-543BE95E2E03} = {6434E3F2-B352-4B30-839A-88C2BA166D96}
{D9108313-8D05-4F5F-9AA0-B443EC3374B6} = {5C304CBC-F30D-413C-A0AF-8B6814A2D4A3}
{FC30B17B-F671-4E55-90C6-9F37E40B483D} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{5910B07F-1520-45D6-A15F-7A3E0698BE18} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{4C65690E-2C17-46A1-BB35-A51BAB2EA3B7} = {C4AC9352-C9F5-4096-8D73-13638232CFB9}
{3C3FF821-E43D-4D58-8B3C-1E97F4518EF7} = {11ED8435-B5AE-4BF3-9D4B-51FA1E4A18A6}
EndGlobalSection

2
aspnet-core/gateways/CompanyName.ProjectName.WebGateway/Properties/launchSettings.json

@ -7,7 +7,7 @@
"launchUrl": "swagger",
"applicationUrl": "http://localhost:44314",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Production"
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}

2
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Properties/launchSettings.json

@ -5,7 +5,7 @@
"launchBrowser": true,
"applicationUrl": "http://localhost:44315",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Production"
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}

2
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/appsettings.Development.json

@ -44,7 +44,7 @@
"IndexFormat": "companyname.projectname.development.{0:yyyy.MM.dd}",
"UserName": "elastic",
"Password": "aVVhjQ95RP7nbwNy",
"SearchIndexFormat": "companyname.projectname.development.*"
"SearchIndexFormat": "companyname.projectname.development*"
},
"HttpClient": {
"Sts": {

1
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/CompanyName.ProjectName.Application.Contracts.csproj

@ -10,7 +10,6 @@
<ItemGroup>
<ProjectReference Include="..\..\..\modules\DataDictionaryManagement\src\CompanyName.ProjectName.DataDictionaryManagement.Application.Contracts\CompanyName.ProjectName.DataDictionaryManagement.Application.Contracts.csproj" />
<ProjectReference Include="..\CompanyName.ProjectName.Domain.Shared\CompanyName.ProjectName.Domain.Shared.csproj" />
<ProjectReference Include="..\CompanyName.ProjectName.ElasticsearchRepository\CompanyName.ProjectName.ElasticsearchRepository.csproj" />
</ItemGroup>
<ItemGroup>

0
aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository/Dto/PagingElasticSearchLogInput.cs → aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/ElasticSearchs/Dto/PagingElasticSearchLogInput.cs

26
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/ElasticSearchs/Dto/PagingElasticSearchLogOutput.cs

@ -0,0 +1,26 @@
using System;
namespace CompanyName.ProjectName.ElasticsearchRepository.Dto
{
public class PagingElasticSearchLogOutput
{
/// <summary>
/// 日志级别
/// </summary>
public string Level { get; set; }
/// <summary>
/// 日志内容
/// </summary>
public string Message { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreationTime { get; set; }
}
}

45
aspnet-core/services/src/CompanyName.ProjectName.Application/CompanyName.ProjectName.Application.csproj

@ -1,27 +1,28 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace>CompanyName.ProjectName</RootNamespace>
</PropertyGroup>
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RootNamespace>CompanyName.ProjectName</RootNamespace>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\modules\DataDictionaryManagement\src\CompanyName.ProjectName.DataDictionaryManagement.Application\CompanyName.ProjectName.DataDictionaryManagement.Application.csproj" />
<ProjectReference Include="..\..\..\modules\NotificationManagement\src\CompanyName.ProjectName.NotificationManagement.Application\CompanyName.ProjectName.NotificationManagement.Application.csproj" />
<ProjectReference Include="..\CompanyName.ProjectName.Domain\CompanyName.ProjectName.Domain.csproj" />
<ProjectReference Include="..\CompanyName.ProjectName.Application.Contracts\CompanyName.ProjectName.Application.Contracts.csproj" />
<ProjectReference Include="..\CompanyName.ProjectName.FreeSqlRepository\CompanyName.ProjectName.FreeSqlRepository.csproj" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\modules\DataDictionaryManagement\src\CompanyName.ProjectName.DataDictionaryManagement.Application\CompanyName.ProjectName.DataDictionaryManagement.Application.csproj" />
<ProjectReference Include="..\..\..\modules\NotificationManagement\src\CompanyName.ProjectName.NotificationManagement.Application\CompanyName.ProjectName.NotificationManagement.Application.csproj" />
<ProjectReference Include="..\CompanyName.ProjectName.Domain\CompanyName.ProjectName.Domain.csproj" />
<ProjectReference Include="..\CompanyName.ProjectName.Application.Contracts\CompanyName.ProjectName.Application.Contracts.csproj" />
<ProjectReference Include="..\CompanyName.ProjectName.FreeSqlRepository\CompanyName.ProjectName.FreeSqlRepository.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="EasyAbp.Abp.SettingUi.Application" Version="$(EasyAbpSttingVersion)" />
<PackageReference Include="Volo.Abp.Account.Application" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Identity.Application" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.PermissionManagement.Application" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.TenantManagement.Application" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.FeatureManagement.Application" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.SettingManagement.Application" Version="$(AbpPackageVersion)" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="EasyAbp.Abp.SettingUi.Application" Version="$(EasyAbpSttingVersion)" />
<PackageReference Include="Volo.Abp.Account.Application" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Identity.Application" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.PermissionManagement.Application" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.TenantManagement.Application" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.FeatureManagement.Application" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.SettingManagement.Application" Version="$(AbpPackageVersion)" />
<PackageReference Include="NEST" Version="$(NESTVersion)" />
</ItemGroup>
</Project>

65
aspnet-core/services/src/CompanyName.ProjectName.Application/ElasticSearchs/CompanyNameProjectNameLogAppService.cs

@ -1,25 +1,76 @@
using System.Threading.Tasks;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using CompanyName.ProjectName.ElasticsearchRepository;
using CompanyName.ProjectName.ElasticsearchRepository.Dto;
using CompanyName.ProjectName.Extension.Customs.Dtos;
using CompanyName.ProjectName.Permissions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.Configuration;
using Nest;
namespace CompanyName.ProjectName.ElasticSearchs
{
[Authorize(Policy = ProjectNamePermissions.SystemManagement.ES)]
public class CompanyNameProjectNameLogAppService:ProjectNameAppService,ICompanyNameProjectNameLogAppService
public class CompanyNameProjectNameLogAppService : ElasticsearchBasicService,
ICompanyNameProjectNameLogAppService
{
private readonly ICompanyNameProjectNameLogRepository _companyNameProjectNameLogRepository;
private readonly IConfiguration _configuration;
public CompanyNameProjectNameLogAppService(ICompanyNameProjectNameLogRepository companyNameProjectNameLogRepository)
public CompanyNameProjectNameLogAppService(
IElasticsearchProvider elasticsearchProvider,
IConfiguration configuration) : base(elasticsearchProvider)
{
_companyNameProjectNameLogRepository = companyNameProjectNameLogRepository;
_configuration = configuration;
}
public Task<CustomePagedResultDto<PagingElasticSearchLogOutput>> PaingAsync(PagingElasticSearchLogInput input)
public async Task<CustomePagedResultDto<PagingElasticSearchLogOutput>> PaingAsync(
PagingElasticSearchLogInput input)
{
return _companyNameProjectNameLogRepository.PaingAsync(input);
var IndexName =
_configuration.GetValue<string>("ElasticSearch:SearchIndexFormat");
// 默认查询当天
input.StartCreationTime = input.StartCreationTime?.AddMilliseconds(-1) ??
DateTime.Now.Date.AddMilliseconds(-1);
input.EndCreationTime =
input.EndCreationTime?.AddDays(1).AddMilliseconds(-1) ??
DateTime.Now.Date.AddDays(1).AddMilliseconds(-1);
var mustFilters =
new List<Func<QueryContainerDescriptor<PagingElasticSearchLogDto>,
QueryContainer>>
{
t => t.DateRange(f =>
f.Field(fd => fd.CreationTime).TimeZone("Asia/Shanghai")
.GreaterThanOrEquals(input.StartCreationTime.Value)),
t => t.DateRange(
f => f.Field(fd => fd.CreationTime).TimeZone("Asia/Shanghai")
.LessThanOrEquals(input.EndCreationTime.Value))
};
if (!string.IsNullOrWhiteSpace(input.Filter))
{
mustFilters.Add(t =>
t.MatchPhrase(f => f.Field(fd => fd.Message).Query(input.Filter.Trim())));
}
var result = await Client.SearchAsync<PagingElasticSearchLogDto>(e => e
.Index(IndexName)
.From(input.SkipCount)
.Size(input.PageSize)
.Sort(s => s.Descending(sd => sd.CreationTime))
.Query(q => q.Bool(qb => qb.Filter(mustFilters))));
if (result.HitsMetadata != null)
{
return new CustomePagedResultDto<PagingElasticSearchLogOutput>(
result.HitsMetadata.Total.Value,
ObjectMapper
.Map<List<PagingElasticSearchLogDto>, List<PagingElasticSearchLogOutput>>(
result.Documents.ToList()));
}
return null;
}
}
}

32
aspnet-core/services/src/CompanyName.ProjectName.Application/ElasticSearchs/Dto/PagingElasticSearchLogDto.cs

@ -0,0 +1,32 @@
using System;
using Nest;
namespace CompanyName.ProjectName.ElasticSearchs
{
/// <summary>
/// Dto为什么在Service层
/// 因为NEST 类库的坑 PropertyName必须用这个
/// 不想在契约层添加NEST 包引用
/// </summary>
[Serializable]
public class PagingElasticSearchLogDto
{
/// <summary>
/// 日志级别
/// </summary>
public string Level { get; set; }
/// <summary>
/// 日志内容
/// </summary>
public string Message { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[PropertyName("@timestamp")]
public DateTime CreationTime { get; set; }
}
}

18
aspnet-core/services/src/CompanyName.ProjectName.Application/ElasticSearchs/Providers/ElasticsearchBasicService.cs

@ -0,0 +1,18 @@
using Nest;
using Volo.Abp.Domain.Services;
namespace CompanyName.ProjectName.ElasticsearchRepository
{
public abstract class ElasticsearchBasicService : ProjectNameAppService
{
private readonly IElasticsearchProvider _elasticsearchProvider;
// ReSharper disable once PublicConstructorInAbstractClass
public ElasticsearchBasicService(IElasticsearchProvider elasticsearchProvider)
{
_elasticsearchProvider = elasticsearchProvider;
}
protected IElasticClient Client => _elasticsearchProvider.GetElasticClient();
}
}

29
aspnet-core/services/src/CompanyName.ProjectName.Application/ElasticSearchs/Providers/ElasticsearchProvider.cs

@ -0,0 +1,29 @@
using System;
using Elasticsearch.Net;
using Microsoft.Extensions.Configuration;
using Nest;
using Volo.Abp.DependencyInjection;
namespace CompanyName.ProjectName.ElasticsearchRepository
{
public class ElasticsearchProvider : IElasticsearchProvider, ISingletonDependency
{
private readonly IConfiguration _configuration;
public ElasticsearchProvider(IConfiguration configuration)
{
_configuration = configuration;
}
public IElasticClient GetElasticClient()
{
var pool = new SingleNodeConnectionPool(new Uri(_configuration.GetValue<string>("ElasticSearch:Url")));
var connectionSettings =
new ConnectionSettings(pool);
connectionSettings.EnableHttpCompression();
connectionSettings.BasicAuthentication(_configuration.GetValue<string>("ElasticSearch:UserName"),
_configuration.GetValue<string>("ElasticSearch:Password"));
return new ElasticClient(connectionSettings);
}
}
}

10
aspnet-core/services/src/CompanyName.ProjectName.Application/ElasticSearchs/Providers/IElasticsearchProvider.cs

@ -0,0 +1,10 @@
using Nest;
using Volo.Abp.DependencyInjection;
namespace CompanyName.ProjectName.ElasticsearchRepository
{
public interface IElasticsearchProvider : ISingletonDependency
{
IElasticClient GetElasticClient();
}
}

4
aspnet-core/services/src/CompanyName.ProjectName.Application/IdentityServers/IdentityServerApplicationAutoMapperProfile.cs

@ -1,4 +1,6 @@
using AutoMapper;
using CompanyName.ProjectName.ElasticsearchRepository.Dto;
using CompanyName.ProjectName.ElasticSearchs;
using CompanyName.ProjectName.IdentityServers.ApiScopes.Dtos;
using CompanyName.ProjectName.IdentityServers.Clients;
using CompanyName.ProjectName.IdentityServers.Dtos;
@ -35,6 +37,8 @@ namespace CompanyName.ProjectName.IdentityServers.Mappers
CreateMap<ApiScope, PagingApiScopeListOutput>();
CreateMap<IdentityResource, PagingIdentityResourceListOutput>();
CreateMap<PagingElasticSearchLogDto, PagingElasticSearchLogOutput>();
}
}
}

4
aspnet-core/services/src/CompanyName.ProjectName.Application/ProjectNameApplicationModule.cs

@ -1,5 +1,4 @@
using CompanyName.ProjectName.DataDictionaryManagement;
using CompanyName.ProjectName.ElasticsearchRepository;
using CompanyName.ProjectName.FreeSqlRepository;
using CompanyName.ProjectName.NotificationManagement;
using EasyAbp.Abp.SettingUi;
@ -28,8 +27,7 @@ namespace CompanyName.ProjectName
typeof(DataDictionaryManagementApplicationModule),
typeof(NotificationManagementApplicationModule),
typeof(AbpSettingUiApplicationModule),
typeof(FreeSqlRepositoryModule),
typeof(ProjectNameElasticSearchModule)
typeof(FreeSqlRepositoryModule)
)]
public class ProjectNameApplicationModule : AbpModule
{

15
aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository.Shared/CompanyName.ProjectName.ElasticsearchRepository.Shared.csproj

@ -0,0 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Core" Version="$(AbpPackageVersion)" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\frameworks\Extensions\src\CompanyName.ProjectName.Extension\CompanyName.ProjectName.Extension.csproj" />
</ItemGroup>
</Project>

14
aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository.Shared/Dto/PagingElasticSearchLogInput.cs

@ -0,0 +1,14 @@
using System;
using CompanyName.ProjectName.Extension.Customs.Dtos;
namespace CompanyName.ProjectName.ElasticsearchRepository.Dto
{
public class PagingElasticSearchLogInput : PagingBase
{
public string Filter { get; set; }
public DateTime? StartCreationTime { get; set; }
public DateTime? EndCreationTime { get; set; }
}
}

4
aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository/Dto/PagingElasticSearchLogOutput.cs → aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository.Shared/Dto/PagingElasticSearchLogOutput.cs

@ -1,5 +1,5 @@
using System;
using Nest;
using Newtonsoft.Json;
namespace CompanyName.ProjectName.ElasticsearchRepository.Dto
{
@ -21,7 +21,7 @@ namespace CompanyName.ProjectName.ElasticsearchRepository.Dto
/// <summary>
/// 创建时间
/// </summary>
[PropertyName("@timestamp")]
[JsonProperty("@timestamp")]
public DateTime CreationTime { get; set; }
}
}

0
aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository/ICompanyNameProjectNameLogRepository.cs → aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository.Shared/ICompanyNameProjectNameLogRepository.cs

9
aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository.Shared/ProjectNameElasticSearchSharedModule.cs

@ -0,0 +1,9 @@
using System;
using Volo.Abp.Modularity;
namespace CompanyName.ProjectName.ElasticsearchRepository.Shared
{
public class ProjectNameElasticSearchSharedModule : AbpModule
{
}
}

13
aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository/CompanyName.ProjectName.ElasticsearchRepository.csproj

@ -1,17 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Core" Version="$(AbpPackageVersion)"/>
<PackageReference Include="NEST" Version="$(NESTVersion)"/>
<PackageReference Include="Volo.Abp.Core" Version="$(AbpPackageVersion)" />
<PackageReference Include="NEST" Version="$(NESTVersion)" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\CompanyName.ProjectName.Domain\CompanyName.ProjectName.Domain.csproj"/>
<ProjectReference Include="..\CompanyName.ProjectName.Domain\CompanyName.ProjectName.Domain.csproj" />
</ItemGroup>
</Project>
</Project>
Loading…
Cancel
Save