Former-commit-id: f337080cf976321a8160e9b0b7411c6af2ef74f4
Former-commit-id: 1169340b533fbab5316d56dc6ac8ce3eb204e0a5
1.0
wanggang 4 years ago
parent 6ef95816d5
commit 1d16d2b922

@ -26,7 +26,7 @@ namespace IoTNode
.WriteTo.Console() .WriteTo.Console()
.WriteTo.File("logs/log.txt", rollOnFileSizeLimit: true, fileSizeLimitBytes: 100 * 1024 * 1024, rollingInterval: RollingInterval.Infinite) .WriteTo.File("logs/log.txt", rollOnFileSizeLimit: true, fileSizeLimitBytes: 100 * 1024 * 1024, rollingInterval: RollingInterval.Infinite)
.CreateLogger(); .CreateLogger();
o.AddSerilog(); o.AddSerilog();
}) })
.UseStartup<Startup>() .UseStartup<Startup>()
.Build() .Build()

@ -14,6 +14,7 @@
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.13" /> <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.13" />
<PackageReference Include="MiniProfiler.AspNetCore.Mvc" Version="4.2.22" /> <PackageReference Include="MiniProfiler.AspNetCore.Mvc" Version="4.2.22" />
<PackageReference Include="MiniProfiler.EntityFrameworkCore" Version="4.2.22" /> <PackageReference Include="MiniProfiler.EntityFrameworkCore" Version="4.2.22" />
<PackageReference Include="Serilog.Sinks.Elasticsearch" Version="8.4.1" />
<PackageReference Include="Serilog.Sinks.SQLite" Version="5.0.0" /> <PackageReference Include="Serilog.Sinks.SQLite" Version="5.0.0" />
<PackageReference Include="sqlite-net-pcl" Version="1.7.335" /> <PackageReference Include="sqlite-net-pcl" Version="1.7.335" />
<PackageReference Include="Yarp.ReverseProxy" Version="1.0.0-preview.10.21168.2" /> <PackageReference Include="Yarp.ReverseProxy" Version="1.0.0-preview.10.21168.2" />

@ -4,7 +4,11 @@ using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using Serilog; using Serilog;
using Serilog.Formatting.Elasticsearch;
using Serilog.Formatting.Json;
using Serilog.Settings.Configuration; using Serilog.Settings.Configuration;
using Serilog.Sinks.Elasticsearch;
using Serilog.Sinks.RollingFile;
using System; using System;
using System.IO; using System.IO;
using System.Text; using System.Text;
@ -16,17 +20,8 @@ namespace Platform
public static void Main(string[] args) public static void Main(string[] args)
{ {
Console.OutputEncoding = Encoding.UTF8; Console.OutputEncoding = Encoding.UTF8;
IConfigurationRoot config = GetConfig();
var config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()) Log.Logger = GetLogger(config);
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", optional: true, reloadOnChange: true)
.Build();
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(config, ConfigurationAssemblySource.AlwaysScanDllFiles)
.WriteTo.Console()
//.WriteTo.File("logs/log.txt", rollOnFileSizeLimit: true, fileSizeLimitBytes: 100 * 1024 * 1024, rollingInterval: RollingInterval.Infinite)
.CreateLogger();
try try
{ {
@ -49,5 +44,30 @@ namespace Platform
Log.CloseAndFlush(); Log.CloseAndFlush();
} }
} }
private static IConfigurationRoot GetConfig()
{
return new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", optional: true, reloadOnChange: true)
.Build();
}
private static ILogger GetLogger(IConfigurationRoot config)
{
return new LoggerConfiguration()
.ReadFrom.Configuration(config, ConfigurationAssemblySource.AlwaysScanDllFiles)
.WriteTo.Console()
.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(config.GetConnectionString("Log")))
{
AutoRegisterTemplate = true,
AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv7,
CustomFormatter = new ExceptionAsObjectJsonFormatter(renderMessage: true),
FailureCallback = e => Console.WriteLine("Unable to submit event " + e.MessageTemplate),
EmitEventFailure = EmitEventFailureHandling.WriteToSelfLog |EmitEventFailureHandling.WriteToFailureSink | EmitEventFailureHandling.RaiseCallback,
FailureSink = new RollingFileSink("logs/log.json", new JsonFormatter(), 100 * 1024 * 1024, 1, Encoding.UTF8)
})
.CreateLogger();
}
} }
} }

@ -2,6 +2,7 @@
"ConnectionStrings": { "ConnectionStrings": {
"SQLite": "Data Source=iotcenter.db", "SQLite": "Data Source=iotcenter.db",
"MySQL": "Server=mysql;Port=3306;Database=iotcenter;Uid=root;Pwd=aA123456!;", "MySQL": "Server=mysql;Port=3306;Database=iotcenter;Uid=root;Pwd=aA123456!;",
"Log": "http://elasticsearch:9200",
"Job.MySQL": "Server=mysql;Port=3306;Database=jobserver;Uid=root;Pwd=aA123456!;Allow User Variables=True;", "Job.MySQL": "Server=mysql;Port=3306;Database=jobserver;Uid=root;Pwd=aA123456!;Allow User Variables=True;",
"PostgreSQL": "User ID=root;Host=localhost;Port=26257;Database=iotcenter;CommandTimeout=600;TrustServerCertificate=true;", "PostgreSQL": "User ID=root;Host=localhost;Port=26257;Database=iotcenter;CommandTimeout=600;TrustServerCertificate=true;",
"Redis": "redis:6379,password=aA123456!,allowAdmin=true", "Redis": "redis:6379,password=aA123456!,allowAdmin=true",

@ -15,7 +15,6 @@
"TablePrefix": "", "TablePrefix": "",
"Database": "MySQL", "Database": "MySQL",
"JobDatabase": "MySQL", "JobDatabase": "MySQL",
"Log": "File",
"FileServer": "MinIO", "FileServer": "MinIO",
"Cache": "Redis", "Cache": "Redis",
"Profiler": false, "Profiler": false,
@ -24,6 +23,7 @@
"ConnectionStrings": { "ConnectionStrings": {
"SQLite": "Data Source=iotcenter.db", "SQLite": "Data Source=iotcenter.db",
"MySQL": "Server=localhost;Port=3306;Database=iotcenter;Uid=root;Pwd=aA123456!;", "MySQL": "Server=localhost;Port=3306;Database=iotcenter;Uid=root;Pwd=aA123456!;",
"Log": "http://localhost:9200",
"Job.MySQL": "Server=localhost;Port=3306;Database=jobserver;Uid=root;Pwd=aA123456!;Allow User Variables=True;", "Job.MySQL": "Server=localhost;Port=3306;Database=jobserver;Uid=root;Pwd=aA123456!;Allow User Variables=True;",
"PostgreSQL": "User ID=root;Host=localhost;Port=26257;Database=iotcenter;CommandTimeout=600;TrustServerCertificate=true;", "PostgreSQL": "User ID=root;Host=localhost;Port=26257;Database=iotcenter;CommandTimeout=600;TrustServerCertificate=true;",
"Redis": "localhost:6379,password=aA123456!,allowAdmin=true", "Redis": "localhost:6379,password=aA123456!,allowAdmin=true",

@ -13,6 +13,7 @@ services:
depends_on: depends_on:
- mysql - mysql
- redis - redis
- elasticsearch
ports: ports:
- 8011:80 - 8011:80
volumes: volumes:

@ -132,3 +132,23 @@ services:
networks: networks:
default: default:
ipv4_address: 172.172.0.60 ipv4_address: 172.172.0.60
#log db
elasticsearch:
image: elasticsearch:7.12.0
restart: always
environment:
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms1g -Xmx1g
- http.cors.enabled=true
- http.cors.allow-origin=*
ports:
- 9200:9200
- 9300:9300
volumes:
- ./data/elasticsearch:/usr/share/elasticsearch/data
#Kibana
kibana:
image: kibana:7.12.0
restart: always
ports:
- 5601:5601

Loading…
Cancel
Save