1. ✅ Fixed Misleading Property Names
- File: WebApp/ChapterSettings.cs - Change: Renamed StateContainer.UserId to ScheduledTeams - Impact: Property name now accurately reflects what it stores 2. ✅ Added Structured Logging with Serilog - Packages Added: - Serilog.AspNetCore - Serilog.Sinks.Console - Serilog.Sinks.File - Files Modified: - Program.cs - Added Serilog configuration with console and file logging - appsettings.json - Added Serilog minimum log levels - appsettings.Development.json - Added Debug level logging for development - Benefits: - Structured log output for better parsing/analysis - Automatic file rotation (daily, 30 days retention) - Logs stored in logs/webapp-.txt - Better formatted console output 3. ✅ Added Global Error Handling - File Created: WebApp/Components/Shared/AppErrorBoundary.razor - File Modified: WebApp/Components/App.razor - Features: - Catches unhandled exceptions throughout the app - Shows detailed error info in Development environment - Shows user-friendly message in Production - Logs errors automatically - Provides "Return to Home" button 4. ✅ Enhanced Input Validation - File Modified: WebApp/Components/Login.razor - Validations Added: - Email: Required, valid email format, max 100 chars, regex validation - Password: Required, min 8 chars, max 100 chars - Benefits: - Client-side validation before submission - Clear error messages for users - Prevents invalid data submission
This commit is contained in:
@@ -1,12 +1,26 @@
|
||||
using Data;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using MudBlazor.Services;
|
||||
using Serilog;
|
||||
using WebApp;
|
||||
using WebApp.Authentication;
|
||||
using WebApp.Components;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
// Configure Serilog
|
||||
builder.Host.UseSerilog((context, configuration) =>
|
||||
configuration
|
||||
.ReadFrom.Configuration(context.Configuration)
|
||||
.Enrich.FromLogContext()
|
||||
.WriteTo.Console(
|
||||
outputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj} {Properties:j}{NewLine}{Exception}")
|
||||
.WriteTo.File(
|
||||
path: "logs/webapp-.txt",
|
||||
rollingInterval: RollingInterval.Day,
|
||||
retainedFileCountLimit: 30,
|
||||
outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj} {Properties:j}{NewLine}{Exception}"));
|
||||
|
||||
// Configure authentication secrets for production (Docker, etc.)
|
||||
if (builder.Environment.IsProduction())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user