diff --git a/src/Recyclarr.Gui/CompositionRoot.cs b/src/Recyclarr.Gui/CompositionRoot.cs index 9ded8907..74cad10a 100644 --- a/src/Recyclarr.Gui/CompositionRoot.cs +++ b/src/Recyclarr.Gui/CompositionRoot.cs @@ -1,5 +1,6 @@ using System.IO.Abstractions; using Autofac; +using AutofacSerilogIntegration; using Common; using TrashLib.Startup; @@ -9,6 +10,8 @@ public static class CompositionRoot { public static void Setup(ContainerBuilder builder) { + builder.RegisterLogger(); + builder.RegisterModule<CommonAutofacModule>(); builder.RegisterType<FileSystem>().As<IFileSystem>(); diff --git a/src/Recyclarr.Gui/Pages/Error.cshtml.cs b/src/Recyclarr.Gui/Pages/Error.cshtml.cs index 1f214afd..79736c79 100644 --- a/src/Recyclarr.Gui/Pages/Error.cshtml.cs +++ b/src/Recyclarr.Gui/Pages/Error.cshtml.cs @@ -1,6 +1,6 @@ -using Microsoft.AspNetCore.Mvc; +using System.Diagnostics; +using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; -using System.Diagnostics; namespace Recyclarr.Gui.Pages { @@ -12,13 +12,6 @@ namespace Recyclarr.Gui.Pages public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); - private readonly ILogger<ErrorModel> _logger; - - public ErrorModel(ILogger<ErrorModel> logger) - { - _logger = logger; - } - public void OnGet() { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; diff --git a/src/Recyclarr.Gui/Program.cs b/src/Recyclarr.Gui/Program.cs index 28ffa612..94779694 100644 --- a/src/Recyclarr.Gui/Program.cs +++ b/src/Recyclarr.Gui/Program.cs @@ -1,7 +1,9 @@ -using Autofac; +using System.IO.Abstractions; using Autofac.Extensions.DependencyInjection; using MudBlazor.Services; using Recyclarr.Gui; +using Serilog; +using TrashLib.Startup; var builder = WebApplication.CreateBuilder(args); @@ -9,11 +11,24 @@ builder.Services.AddRazorPages(); builder.Services.AddServerSideBlazor(); builder.Services.AddMudServices(); -builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()) - .ConfigureContainer<ContainerBuilder>(CompositionRoot.Setup); +builder.Host + .ConfigureServices(x => x.AddAutofac()) + .UseServiceProviderFactory(new AutofacServiceProviderFactory(CompositionRoot.Setup)) + .UseSerilog((_, provider, config) => + { + var paths = provider.GetRequiredService<IAppPaths>(); + var logFile = paths.LogDirectory.SubDirectory("gui").File("gui.log"); + config + .MinimumLevel.Debug() + .WriteTo.File(logFile.FullName); + }); var app = builder.Build(); +var paths = app.Services.GetRequiredService<IAppPaths>(); +var log = app.Services.GetRequiredService<ILogger>(); +log.Debug("App Data Dir: {AppData}", paths.AppDataDirectory); + // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { @@ -22,12 +37,8 @@ if (!app.Environment.IsDevelopment()) app.UseHsts(); } -app.UseHttpsRedirection(); - app.UseStaticFiles(); - app.UseRouting(); - app.MapBlazorHub(); app.MapFallbackToPage("/_Host"); diff --git a/src/Recyclarr.Gui/Recyclarr.Gui.csproj b/src/Recyclarr.Gui/Recyclarr.Gui.csproj index de3501c6..66a12d1f 100644 --- a/src/Recyclarr.Gui/Recyclarr.Gui.csproj +++ b/src/Recyclarr.Gui/Recyclarr.Gui.csproj @@ -1,10 +1,17 @@ <Project Sdk="Microsoft.NET.Sdk.Web"> + <ItemGroup> + <Using Remove="Microsoft.Extensions.Logging" /> + </ItemGroup> + <ItemGroup> <PackageReference Include="Autofac" /> <PackageReference Include="Autofac.Extensions.DependencyInjection" Version="8.0.0" /> + <PackageReference Include="AutofacSerilogIntegration" Version="5.0.0" /> <PackageReference Include="MudBlazor" Version="6.*" /> <PackageReference Include="ReactiveUI.Blazor" Version="18.*" /> + <PackageReference Include="Serilog.AspNetCore" Version="5.0.0" /> + <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" /> </ItemGroup> <ItemGroup> diff --git a/src/Recyclarr.Gui/appsettings.Development.json b/src/Recyclarr.Gui/appsettings.Development.json index 51737579..b9091509 100644 --- a/src/Recyclarr.Gui/appsettings.Development.json +++ b/src/Recyclarr.Gui/appsettings.Development.json @@ -1,10 +1,3 @@ { - "DetailedErrors": true, - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - } + "DetailedErrors": true }