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
 }