我正在尝试在发生错误时记录整个原始请求,但它无法正常工作。 reader.ReadToEnd()
不返回任何内容。
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
//.....
app.UseExceptionHandler(appBuilder =>
{
appBuilder.Run(async context =>
{
context.Response.StatusCode = 500;
var exceptionFeature = context.Features.Get<IExceptionHandlerFeature>();
if (exceptionFeature != null)
{
var nLoggerFactory = loggerFactory.AddNLog();
var logger = nLoggerFactory.CreateLogger("Global Exception logger");
using (var reader = new StreamReader(context.Request.Body))
{
logger.LogError(500,
$"Request : {reader.ReadToEnd()} {Environment.NewLine} Exception : {exceptionFeature.Error.ToString()}");
}
await context.Response.WriteAsync(exceptionFeature.Error.ToString());
return;
}
await context.Response.WriteAsync("An un-expected server error has happened!");
});
});
//.....
}