diff --git a/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServer.Host.csproj b/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServer.Host.csproj
index 324b4abf06..4f10fd61b9 100644
--- a/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServer.Host.csproj
+++ b/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServer.Host.csproj
@@ -15,6 +15,7 @@
+
diff --git a/samples/MicroserviceDemo/applications/AuthServer.Host/Program.cs b/samples/MicroserviceDemo/applications/AuthServer.Host/Program.cs
index 84f71ab802..80de0a0d64 100644
--- a/samples/MicroserviceDemo/applications/AuthServer.Host/Program.cs
+++ b/samples/MicroserviceDemo/applications/AuthServer.Host/Program.cs
@@ -1,8 +1,10 @@
using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Configuration;
using Serilog;
using Serilog.Events;
+using Serilog.Sinks.Elasticsearch;
namespace AuthServer.Host
{
@@ -10,11 +12,26 @@ namespace AuthServer.Host
{
public static int Main(string[] args)
{
+ //TODO: Temporary: it's not good to read appsettings.json here just to configure logging
+ var configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddEnvironmentVariables()
+ .Build();
+
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
+ .Enrich.WithProperty("Application", "AuthServer")
.Enrich.FromLogContext()
.WriteTo.File("Logs/logs.txt")
+ .WriteTo.Elasticsearch(
+ new ElasticsearchSinkOptions(new Uri(configuration["ElasticSearch:Url"]))
+ {
+ AutoRegisterTemplate = true,
+ AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv6,
+ IndexFormat = "msdemo-log-{0:yyyy.MM}"
+ })
.CreateLogger();
try
diff --git a/samples/MicroserviceDemo/applications/AuthServer.Host/appsettings.json b/samples/MicroserviceDemo/applications/AuthServer.Host/appsettings.json
index 17a9c1a1fe..2840491ce5 100644
--- a/samples/MicroserviceDemo/applications/AuthServer.Host/appsettings.json
+++ b/samples/MicroserviceDemo/applications/AuthServer.Host/appsettings.json
@@ -2,6 +2,9 @@
"ConnectionStrings": {
"Default": "Server=localhost;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true"
},
+ "ElasticSearch": {
+ "Url": "http://localhost:9200"
+ },
"Redis": {
"Configuration": "127.0.0.1"
},
diff --git a/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminApp.Host.csproj b/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminApp.Host.csproj
index f91c905ed2..01bc6634d5 100644
--- a/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminApp.Host.csproj
+++ b/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminApp.Host.csproj
@@ -16,6 +16,7 @@
+
diff --git a/samples/MicroserviceDemo/applications/BackendAdminApp.Host/Program.cs b/samples/MicroserviceDemo/applications/BackendAdminApp.Host/Program.cs
index 88423094cf..e0736fb529 100644
--- a/samples/MicroserviceDemo/applications/BackendAdminApp.Host/Program.cs
+++ b/samples/MicroserviceDemo/applications/BackendAdminApp.Host/Program.cs
@@ -1,8 +1,10 @@
using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Configuration;
using Serilog;
using Serilog.Events;
+using Serilog.Sinks.Elasticsearch;
namespace BackendAdminApp.Host
{
@@ -10,11 +12,26 @@ namespace BackendAdminApp.Host
{
public static int Main(string[] args)
{
+ //TODO: Temporary: it's not good to read appsettings.json here just to configure logging
+ var configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddEnvironmentVariables()
+ .Build();
+
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
+ .Enrich.WithProperty("Application", "BackendAdminApp")
.Enrich.FromLogContext()
.WriteTo.File("Logs/logs.txt")
+ .WriteTo.Elasticsearch(
+ new ElasticsearchSinkOptions(new Uri(configuration["ElasticSearch:Url"]))
+ {
+ AutoRegisterTemplate = true,
+ AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv6,
+ IndexFormat = "msdemo-log-{0:yyyy.MM}"
+ })
.CreateLogger();
try
diff --git a/samples/MicroserviceDemo/applications/BackendAdminApp.Host/appsettings.json b/samples/MicroserviceDemo/applications/BackendAdminApp.Host/appsettings.json
index cfc597fc38..95fc1a4664 100644
--- a/samples/MicroserviceDemo/applications/BackendAdminApp.Host/appsettings.json
+++ b/samples/MicroserviceDemo/applications/BackendAdminApp.Host/appsettings.json
@@ -9,6 +9,9 @@
"BaseUrl": "http://localhost:65115/"
}
},
+ "ElasticSearch": {
+ "Url": "http://localhost:9200"
+ },
"Redis": {
"Configuration": "127.0.0.1"
},
diff --git a/samples/MicroserviceDemo/applications/PublicWebSite.Host/Program.cs b/samples/MicroserviceDemo/applications/PublicWebSite.Host/Program.cs
index 7512671999..d6a396ecf4 100644
--- a/samples/MicroserviceDemo/applications/PublicWebSite.Host/Program.cs
+++ b/samples/MicroserviceDemo/applications/PublicWebSite.Host/Program.cs
@@ -1,8 +1,10 @@
using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Configuration;
using Serilog;
using Serilog.Events;
+using Serilog.Sinks.Elasticsearch;
namespace PublicWebSite.Host
{
@@ -10,11 +12,26 @@ namespace PublicWebSite.Host
{
public static int Main(string[] args)
{
+ //TODO: Temporary: it's not good to read appsettings.json here just to configure logging
+ var configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddEnvironmentVariables()
+ .Build();
+
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
+ .Enrich.WithProperty("Application", "PublicWebSite")
.Enrich.FromLogContext()
.WriteTo.File("Logs/logs.txt")
+ .WriteTo.Elasticsearch(
+ new ElasticsearchSinkOptions(new Uri(configuration["ElasticSearch:Url"]))
+ {
+ AutoRegisterTemplate = true,
+ AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv6,
+ IndexFormat = "msdemo-log-{0:yyyy.MM}"
+ })
.CreateLogger();
try
diff --git a/samples/MicroserviceDemo/applications/PublicWebSite.Host/PublicWebSite.Host.csproj b/samples/MicroserviceDemo/applications/PublicWebSite.Host/PublicWebSite.Host.csproj
index 02618191ce..1585146a68 100644
--- a/samples/MicroserviceDemo/applications/PublicWebSite.Host/PublicWebSite.Host.csproj
+++ b/samples/MicroserviceDemo/applications/PublicWebSite.Host/PublicWebSite.Host.csproj
@@ -16,6 +16,7 @@
+
diff --git a/samples/MicroserviceDemo/applications/PublicWebSite.Host/appsettings.json b/samples/MicroserviceDemo/applications/PublicWebSite.Host/appsettings.json
index edf6f8b09d..829fe9722d 100644
--- a/samples/MicroserviceDemo/applications/PublicWebSite.Host/appsettings.json
+++ b/samples/MicroserviceDemo/applications/PublicWebSite.Host/appsettings.json
@@ -9,6 +9,9 @@
"BaseUrl": "http://localhost:64897/"
}
},
+ "ElasticSearch": {
+ "Url": "http://localhost:9200"
+ },
"Redis": {
"Configuration": "127.0.0.1"
},
diff --git a/samples/MicroserviceDemo/docs/design/Overall.md b/samples/MicroserviceDemo/docs/design/Overall.md
index 36c4beee58..fe75084afe 100644
--- a/samples/MicroserviceDemo/docs/design/Overall.md
+++ b/samples/MicroserviceDemo/docs/design/Overall.md
@@ -13,6 +13,8 @@ The goal of this work is to show how to create a complete microservice solution
* [**Redis**](https://redis.io/) for distributed cache.
* [**RabbitMQ**](https://www.rabbitmq.com/) for distributed messaging.
* **[Serilog](https://serilog.net/)** for logging.
+* **[Elasticsearch](https://www.elastic.co/products/elasticsearch)** as log database.
+* **[Kibana](https://www.elastic.co/products/kibana)** as visualization tool (for logs in the Elasticsearch).
## Diagram
diff --git a/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGateway.Host.csproj b/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGateway.Host.csproj
index f56612ddea..1ec9405f2a 100644
--- a/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGateway.Host.csproj
+++ b/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGateway.Host.csproj
@@ -15,6 +15,7 @@
+
diff --git a/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/Program.cs b/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/Program.cs
index 6e2a864021..22f634eadd 100644
--- a/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/Program.cs
+++ b/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/Program.cs
@@ -1,8 +1,10 @@
using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Configuration;
using Serilog;
using Serilog.Events;
+using Serilog.Sinks.Elasticsearch;
namespace BackendAdminAppGateway.Host
{
@@ -10,11 +12,26 @@ namespace BackendAdminAppGateway.Host
{
public static int Main(string[] args)
{
+ //TODO: Temporary: it's not good to read appsettings.json here just to configure logging
+ var configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddEnvironmentVariables()
+ .Build();
+
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
+ .Enrich.WithProperty("Application", "BackendAdminAppGateway")
.Enrich.FromLogContext()
.WriteTo.File("Logs/logs.txt")
+ .WriteTo.Elasticsearch(
+ new ElasticsearchSinkOptions(new Uri(configuration["ElasticSearch:Url"]))
+ {
+ AutoRegisterTemplate = true,
+ AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv6,
+ IndexFormat = "msdemo-log-{0:yyyy.MM}"
+ })
.CreateLogger();
try
diff --git a/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/appsettings.json b/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/appsettings.json
index 05ea2b0eda..3e6f45b15a 100644
--- a/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/appsettings.json
+++ b/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/appsettings.json
@@ -8,6 +8,9 @@
"Authority": "http://localhost:64999",
"ApiName": "BackendAdminAppGateway"
},
+ "ElasticSearch": {
+ "Url": "http://localhost:9200"
+ },
"ConnectionStrings": {
"Default": "Server=localhost;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true"
},
diff --git a/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGateway.Host.csproj b/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGateway.Host.csproj
index 1f09839dfe..8b56b69df7 100644
--- a/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGateway.Host.csproj
+++ b/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGateway.Host.csproj
@@ -15,6 +15,7 @@
+
diff --git a/samples/MicroserviceDemo/gateways/InternalGateway.Host/Program.cs b/samples/MicroserviceDemo/gateways/InternalGateway.Host/Program.cs
index 719eaa6adb..1d53275ed7 100644
--- a/samples/MicroserviceDemo/gateways/InternalGateway.Host/Program.cs
+++ b/samples/MicroserviceDemo/gateways/InternalGateway.Host/Program.cs
@@ -1,8 +1,10 @@
using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Configuration;
using Serilog;
using Serilog.Events;
+using Serilog.Sinks.Elasticsearch;
namespace InternalGateway.Host
{
@@ -10,11 +12,26 @@ namespace InternalGateway.Host
{
public static int Main(string[] args)
{
+ //TODO: Temporary: it's not good to read appsettings.json here just to configure logging
+ var configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddEnvironmentVariables()
+ .Build();
+
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
+ .Enrich.WithProperty("Application", "InternalGateway")
.Enrich.FromLogContext()
.WriteTo.File("Logs/logs.txt")
+ .WriteTo.Elasticsearch(
+ new ElasticsearchSinkOptions(new Uri(configuration["ElasticSearch:Url"]))
+ {
+ AutoRegisterTemplate = true,
+ AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv6,
+ IndexFormat = "msdemo-log-{0:yyyy.MM}"
+ })
.CreateLogger();
try
diff --git a/samples/MicroserviceDemo/gateways/InternalGateway.Host/appsettings.json b/samples/MicroserviceDemo/gateways/InternalGateway.Host/appsettings.json
index 75df9901e2..c3863ac907 100644
--- a/samples/MicroserviceDemo/gateways/InternalGateway.Host/appsettings.json
+++ b/samples/MicroserviceDemo/gateways/InternalGateway.Host/appsettings.json
@@ -6,6 +6,9 @@
"ConnectionStrings": {
"Default": "Server=localhost;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true"
},
+ "ElasticSearch": {
+ "Url": "http://localhost:9200"
+ },
"Redis": {
"Configuration": "127.0.0.1"
},
diff --git a/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/Program.cs b/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/Program.cs
index 9a3a9e5e20..e609e48821 100644
--- a/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/Program.cs
+++ b/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/Program.cs
@@ -1,8 +1,10 @@
using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Configuration;
using Serilog;
using Serilog.Events;
+using Serilog.Sinks.Elasticsearch;
namespace PublicWebSiteGateway.Host
{
@@ -10,11 +12,26 @@ namespace PublicWebSiteGateway.Host
{
public static int Main(string[] args)
{
+ //TODO: Temporary: it's not good to read appsettings.json here just to configure logging
+ var configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddEnvironmentVariables()
+ .Build();
+
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
+ .Enrich.WithProperty("Application", "PublicWebSiteGateway")
.Enrich.FromLogContext()
.WriteTo.File("Logs/logs.txt")
+ .WriteTo.Elasticsearch(
+ new ElasticsearchSinkOptions(new Uri(configuration["ElasticSearch:Url"]))
+ {
+ AutoRegisterTemplate = true,
+ AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv6,
+ IndexFormat = "msdemo-log-{0:yyyy.MM}"
+ })
.CreateLogger();
try
diff --git a/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/PublicWebSiteGateway.Host.csproj b/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/PublicWebSiteGateway.Host.csproj
index 0679c1cae8..6cddd67e53 100644
--- a/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/PublicWebSiteGateway.Host.csproj
+++ b/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/PublicWebSiteGateway.Host.csproj
@@ -15,6 +15,7 @@
+
diff --git a/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/appsettings.json b/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/appsettings.json
index d0e8ae7f2f..1a1da067be 100644
--- a/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/appsettings.json
+++ b/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/appsettings.json
@@ -6,6 +6,9 @@
"ConnectionStrings": {
"Default": "Server=localhost;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true"
},
+ "ElasticSearch": {
+ "Url": "http://localhost:9200"
+ },
"Redis": {
"Configuration": "127.0.0.1"
},
diff --git a/samples/MicroserviceDemo/microservices/BloggingService.Host/BloggingService.Host.csproj b/samples/MicroserviceDemo/microservices/BloggingService.Host/BloggingService.Host.csproj
index d99c35d7f7..10b797c0f4 100644
--- a/samples/MicroserviceDemo/microservices/BloggingService.Host/BloggingService.Host.csproj
+++ b/samples/MicroserviceDemo/microservices/BloggingService.Host/BloggingService.Host.csproj
@@ -15,6 +15,7 @@
+
diff --git a/samples/MicroserviceDemo/microservices/BloggingService.Host/Program.cs b/samples/MicroserviceDemo/microservices/BloggingService.Host/Program.cs
index 00ace4e0c4..cf6767226e 100644
--- a/samples/MicroserviceDemo/microservices/BloggingService.Host/Program.cs
+++ b/samples/MicroserviceDemo/microservices/BloggingService.Host/Program.cs
@@ -1,8 +1,10 @@
using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Configuration;
using Serilog;
using Serilog.Events;
+using Serilog.Sinks.Elasticsearch;
namespace BloggingService.Host
{
@@ -10,11 +12,26 @@ namespace BloggingService.Host
{
public static int Main(string[] args)
{
+ //TODO: Temporary: it's not good to read appsettings.json here just to configure logging
+ var configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddEnvironmentVariables()
+ .Build();
+
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
+ .Enrich.WithProperty("Application", "BloggingService")
.Enrich.FromLogContext()
.WriteTo.File("Logs/logs.txt")
+ .WriteTo.Elasticsearch(
+ new ElasticsearchSinkOptions(new Uri(configuration["ElasticSearch:Url"]))
+ {
+ AutoRegisterTemplate = true,
+ AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv6,
+ IndexFormat = "msdemo-log-{0:yyyy.MM}"
+ })
.CreateLogger();
try
diff --git a/samples/MicroserviceDemo/microservices/BloggingService.Host/appsettings.json b/samples/MicroserviceDemo/microservices/BloggingService.Host/appsettings.json
index f5e5e31282..edcaf2127f 100644
--- a/samples/MicroserviceDemo/microservices/BloggingService.Host/appsettings.json
+++ b/samples/MicroserviceDemo/microservices/BloggingService.Host/appsettings.json
@@ -22,6 +22,9 @@
"Scope": "InternalGateway IdentityService"
}
},
+ "ElasticSearch": {
+ "Url": "http://localhost:9200"
+ },
"Redis": {
"Configuration": "127.0.0.1"
},
diff --git a/samples/MicroserviceDemo/microservices/IdentityService.Host/IdentityService.Host.csproj b/samples/MicroserviceDemo/microservices/IdentityService.Host/IdentityService.Host.csproj
index 2390e9b733..600dbb96df 100644
--- a/samples/MicroserviceDemo/microservices/IdentityService.Host/IdentityService.Host.csproj
+++ b/samples/MicroserviceDemo/microservices/IdentityService.Host/IdentityService.Host.csproj
@@ -15,6 +15,7 @@
+
diff --git a/samples/MicroserviceDemo/microservices/IdentityService.Host/Program.cs b/samples/MicroserviceDemo/microservices/IdentityService.Host/Program.cs
index 9f59194360..86dc91ab2a 100644
--- a/samples/MicroserviceDemo/microservices/IdentityService.Host/Program.cs
+++ b/samples/MicroserviceDemo/microservices/IdentityService.Host/Program.cs
@@ -1,8 +1,10 @@
using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Configuration;
using Serilog;
using Serilog.Events;
+using Serilog.Sinks.Elasticsearch;
namespace IdentityService.Host
{
@@ -10,11 +12,26 @@ namespace IdentityService.Host
{
public static int Main(string[] args)
{
+ //TODO: Temporary: it's not good to read appsettings.json here just to configure logging
+ var configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddEnvironmentVariables()
+ .Build();
+
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
+ .Enrich.WithProperty("Application", "IdentityService")
.Enrich.FromLogContext()
.WriteTo.File("Logs/logs.txt")
+ .WriteTo.Elasticsearch(
+ new ElasticsearchSinkOptions(new Uri(configuration["ElasticSearch:Url"]))
+ {
+ AutoRegisterTemplate = true,
+ AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv6,
+ IndexFormat = "msdemo-log-{0:yyyy.MM}"
+ })
.CreateLogger();
try
diff --git a/samples/MicroserviceDemo/microservices/IdentityService.Host/appsettings.json b/samples/MicroserviceDemo/microservices/IdentityService.Host/appsettings.json
index 19bf738cce..9a5d60841d 100644
--- a/samples/MicroserviceDemo/microservices/IdentityService.Host/appsettings.json
+++ b/samples/MicroserviceDemo/microservices/IdentityService.Host/appsettings.json
@@ -6,6 +6,9 @@
"ConnectionStrings": {
"Default": "Server=localhost;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true"
},
+ "ElasticSearch": {
+ "Url": "http://localhost:9200"
+ },
"Redis": {
"Configuration": "127.0.0.1"
},
diff --git a/samples/MicroserviceDemo/microservices/ProductService.Host/ProductService.Host.csproj b/samples/MicroserviceDemo/microservices/ProductService.Host/ProductService.Host.csproj
index 5965ff3ed3..cd3d255d3c 100644
--- a/samples/MicroserviceDemo/microservices/ProductService.Host/ProductService.Host.csproj
+++ b/samples/MicroserviceDemo/microservices/ProductService.Host/ProductService.Host.csproj
@@ -15,6 +15,7 @@
+
diff --git a/samples/MicroserviceDemo/microservices/ProductService.Host/Program.cs b/samples/MicroserviceDemo/microservices/ProductService.Host/Program.cs
index a12f96d9b1..40a6f7b5c6 100644
--- a/samples/MicroserviceDemo/microservices/ProductService.Host/Program.cs
+++ b/samples/MicroserviceDemo/microservices/ProductService.Host/Program.cs
@@ -1,8 +1,10 @@
using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Configuration;
using Serilog;
using Serilog.Events;
+using Serilog.Sinks.Elasticsearch;
namespace ProductService.Host
{
@@ -10,11 +12,26 @@ namespace ProductService.Host
{
public static int Main(string[] args)
{
+ //TODO: Temporary: it's not good to read appsettings.json here just to configure logging
+ var configuration = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json")
+ .AddEnvironmentVariables()
+ .Build();
+
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
+ .Enrich.WithProperty("Application", "ProductService")
.Enrich.FromLogContext()
.WriteTo.File("Logs/logs.txt")
+ .WriteTo.Elasticsearch(
+ new ElasticsearchSinkOptions(new Uri(configuration["ElasticSearch:Url"]))
+ {
+ AutoRegisterTemplate = true,
+ AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv6,
+ IndexFormat = "msdemo-log-{0:yyyy.MM}"
+ })
.CreateLogger();
try
diff --git a/samples/MicroserviceDemo/microservices/ProductService.Host/appsettings.json b/samples/MicroserviceDemo/microservices/ProductService.Host/appsettings.json
index 1bcfe310d7..e6b2f9ddcb 100644
--- a/samples/MicroserviceDemo/microservices/ProductService.Host/appsettings.json
+++ b/samples/MicroserviceDemo/microservices/ProductService.Host/appsettings.json
@@ -10,6 +10,9 @@
"Redis": {
"Configuration": "127.0.0.1"
},
+ "ElasticSearch": {
+ "Url": "http://localhost:9200"
+ },
"RabbitMQ": {
"Connections": {
"Default": {