Merge pull request #38 from AnonymusRaccoon/systemd

Host: Cleaning up logs and lifetime on systemd
This commit is contained in:
Zoe Roux 2021-09-02 18:36:15 +02:00 committed by GitHub
commit bc727abe01
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 1 deletions

View File

@ -11,6 +11,7 @@ using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Hosting.Systemd;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Win32; using Microsoft.Win32;
using Serilog; using Serilog;
@ -200,6 +201,7 @@ namespace Kyoo.Core
.UseServiceProviderFactory(new AutofacServiceProviderFactory()) .UseServiceProviderFactory(new AutofacServiceProviderFactory())
.UseContentRoot(AppDomain.CurrentDomain.BaseDirectory) .UseContentRoot(AppDomain.CurrentDomain.BaseDirectory)
.UseEnvironment(_environment) .UseEnvironment(_environment)
.UseSystemd()
.ConfigureAppConfiguration(x => _SetupConfig(x, args)) .ConfigureAppConfiguration(x => _SetupConfig(x, args))
.UseSerilog((host, services, builder) => _ConfigureLogging(builder, host.Configuration, services)) .UseSerilog((host, services, builder) => _ConfigureLogging(builder, host.Configuration, services))
.ConfigureServices(x => x.AddRouting()) .ConfigureServices(x => x.AddRouting())
@ -259,7 +261,19 @@ namespace Kyoo.Core
const string template = const string template =
"[{@t:HH:mm:ss} {@l:u3} {Substring(SourceContext, LastIndexOf(SourceContext, '.') + 1), 15} " "[{@t:HH:mm:ss} {@l:u3} {Substring(SourceContext, LastIndexOf(SourceContext, '.') + 1), 15} "
+ "({@i:0000000000})] {@m}{#if not EndsWith(@m, '\n')}\n{#end}{@x}"; + "({@i:D10})] {@m}{#if not EndsWith(@m, '\n')}\n{#end}{@x}";
if (SystemdHelpers.IsSystemdService())
{
const string syslogTemplate = "[{SourceContext,-35}] {Message:lj}{NewLine}{Exception}";
builder
.WriteTo.Console(new ExpressionTemplate(template, theme: TemplateTheme.Code))
.WriteTo.LocalSyslog("Kyoo", outputTemplate: syslogTemplate)
.Enrich.WithThreadId()
.Enrich.FromLogContext();
return;
}
builder builder
.WriteTo.Console(new ExpressionTemplate(template, theme: TemplateTheme.Code)) .WriteTo.Console(new ExpressionTemplate(template, theme: TemplateTheme.Code))

View File

@ -23,10 +23,12 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting.Systemd" Version="5.0.1" />
<PackageReference Include="Serilog" Version="2.10.0" /> <PackageReference Include="Serilog" Version="2.10.0" />
<PackageReference Include="Serilog.AspNetCore" Version="4.1.0" /> <PackageReference Include="Serilog.AspNetCore" Version="4.1.0" />
<PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" /> <PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" />
<PackageReference Include="Serilog.Expressions" Version="3.2.0" /> <PackageReference Include="Serilog.Expressions" Version="3.2.0" />
<PackageReference Include="Serilog.Sinks.SyslogMessages" Version="2.0.6" />
<PackageReference Include="System.Collections.Immutable" Version="5.0.0" /> <PackageReference Include="System.Collections.Immutable" Version="5.0.0" />
<PackageReference Include="Autofac" Version="6.2.0" /> <PackageReference Include="Autofac" Version="6.2.0" />
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="7.1.0" /> <PackageReference Include="Autofac.Extensions.DependencyInjection" Version="7.1.0" />

View File

@ -9,6 +9,8 @@ Environment=KYOO_DATADIR=/var/lib/kyoo
ExecStart=/usr/lib/kyoo/Kyoo.Host.Console ExecStart=/usr/lib/kyoo/Kyoo.Host.Console
Restart=on-abort Restart=on-abort
TimeoutSec=20 TimeoutSec=20
StandardOutput=null
StandardError=null
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target