diff --git a/src/Program.cs b/src/Program.cs index b86107e..993793c 100644 --- a/src/Program.cs +++ b/src/Program.cs @@ -1,6 +1,7 @@ using Microsoft.AspNetCore.Mvc.Formatters; using sodoff.Model; using sodoff.Services; +using sodoff.Utils; using System.Xml; var builder = WebApplication.CreateBuilder(args); @@ -10,6 +11,7 @@ var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers(options => { options.OutputFormatters.Add(new XmlSerializerOutputFormatter(new XmlWriterSettings() { OmitXmlDeclaration = false })); options.OutputFormatters.RemoveType(); + options.Filters.Add(); }); builder.Services.AddDbContext(); builder.Services.AddScoped(); diff --git a/src/Util/LogRequestOnError.cs b/src/Util/LogRequestOnError.cs new file mode 100644 index 0000000..31bafd2 --- /dev/null +++ b/src/Util/LogRequestOnError.cs @@ -0,0 +1,12 @@ +using Microsoft.AspNetCore.Mvc.Filters; +using Microsoft.AspNetCore.Mvc; + +namespace sodoff.Utils; + +public class LogRequestOnError : IAsyncExceptionFilter { + public async Task OnExceptionAsync(ExceptionContext context) { + Console.WriteLine(string.Format("Exception caused by: {0}", context.HttpContext.Request.Path)); + foreach (var field in context.HttpContext.Request.Form) + Console.WriteLine(string.Format(" {0}", field).Replace("\r", "\n")); + } +}