Remote write

This commit is contained in:
2023-07-26 21:21:55 +02:00
parent 144745a558
commit d26401948a
25 changed files with 293 additions and 34 deletions

View File

@@ -17,7 +17,15 @@
<ItemGroup>
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Serilog" Version="3.0.1" />
<PackageReference Include="Serilog.Settings.Configuration" Version="7.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="4.1.0" />
</ItemGroup>
<ItemGroup Condition="'$(Configuration)' == 'Debug'">
<Content Include="appsettings.Development.json" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
<ItemGroup Condition="'$(Configuration)' == 'Debug'">
<Content Include="appsettings.Local.json" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
</Project>

View File

@@ -11,21 +11,33 @@ using Serilog;
var applicationCancellation = new CancellationTokenSource();
var configurationRoot = CreateConfiguration();
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
#if DEBUG
.MinimumLevel.Verbose()
.ReadFrom.Configuration(configurationRoot)
#else
.MinimumLevel.Information()
#endif
.WriteTo.Console()
.CreateLogger();
var bootstrapConfiguration = CreateConfiguration();
var rootContainer = CreateRootDiContainer(configurationRoot);
var rootContainer = CreateRootDiContainer(bootstrapConfiguration);
var handlerParameters = new ConnectionHandlerParameters(
args,
rootContainer,
configurationRoot,
applicationCancellation.Token
);
var webThread = CreateStartup(FileTime.Server.Web.Program.Start);
webThread.Start();
Thread CreateStartup(Func<string[], IContainer, CancellationToken, Task> startup)
Thread CreateStartup(Func<ConnectionHandlerParameters, Task> startup)
{
var thread = new Thread(() => { HandleStartup(() => startup(args, rootContainer, applicationCancellation.Token).Wait()); });
var thread = new Thread(() => { HandleStartup(() => startup(handlerParameters).Wait()); });
return thread;
}
@@ -45,6 +57,11 @@ void HandleStartup(Action action)
IConfigurationRoot CreateConfiguration()
{
var configurationBuilder = new ConfigurationBuilder();
configurationBuilder.AddCommandLine(args);
#if DEBUG
configurationBuilder.AddJsonFile("appsettings.Development.json", optional: true);
configurationBuilder.AddJsonFile("appsettings.Local.json", optional: true);
#endif
return configurationBuilder.Build();
}
@@ -54,9 +71,10 @@ IContainer CreateRootDiContainer(IConfigurationRoot configuration)
.RegisterDefaultServices(configuration)
.AddLocalProviderServices()
.AddServerServices()
.AddServerCoreServices()
.AddLogging(loggingBuilder => loggingBuilder.AddSerilog());
serviceCollection.TryAddSingleton<IApplicationStopper>(
serviceCollection.AddSingleton<IApplicationStopper>(
new ApplicationStopper(() => applicationCancellation.Cancel())
);

View File

@@ -0,0 +1,13 @@
{
"Serilog": {
"MinimumLevel": {
"Default": "Verbose",
"Override": {
"System": "Information",
"Microsoft": "Information",
"Microsoft.AspNetCore.SignalR": "Debug",
"Microsoft.AspNetCore.Http.Connections": "Debug"
}
}
}
}