C# 全局捕获程序异常错误并写入asp.net core 2.1 web api中的文件
一、 我正在尝试为asp.net core 2.1 web api中的执行错误(而不是http状态错误)创建全局异常处理服务并写入文件 尝试了一些选择,比如C# 全局捕获程序异常错误并写入asp.net core 2.1 web api中的文件,c#,asp.net,.net,asp.net-core,asp.net-core-2.0,C#,Asp.net,.net,Asp.net Core,Asp.net Core 2.0,一、 我正在尝试为asp.net core 2.1 web api中的执行错误(而不是http状态错误)创建全局异常处理服务并写入文件 尝试了一些选择,比如 services.AddMvc(config => { config.Filters.Add(typeof(GlobalExceptionFilter)); }) .SetCompatibilityVersion(Compa
services.AddMvc(config =>
{
config.Filters.Add(typeof(GlobalExceptionFilter));
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddSessionStateTempDataProvider();
异常类
public class GlobalExceptionFilter : IExceptionFilter
{
public void OnException(ExceptionContext context)
{
HttpStatusCode status = HttpStatusCode.InternalServerError;
String message = String.Empty;
var exceptionType = context.Exception.GetType();
if (exceptionType == typeof(UnauthorizedAccessException))
{
message = "Unauthorized Access";
status = HttpStatusCode.Unauthorized;
}
else if (exceptionType == typeof(NotImplementedException))
{
message = "A server error occurred.";
status = HttpStatusCode.NotImplemented;
}
else if (exceptionType == typeof(MyAppException))
{
message = context.Exception.ToString();
status = HttpStatusCode.InternalServerError;
}
else
{
message = context.Exception.Message;
status = HttpStatusCode.NotFound;
}
context.ExceptionHandled = true;
HttpResponse response = context.HttpContext.Response;
response.StatusCode = (int)status;
response.ContentType = "application/json";
var err = message + " " + context.Exception.StackTrace;
response.WriteAsync(err);
}
}
我尝试过调试,但从来没有遇到过调试代码
谁能告诉我如何在文件中记录全局错误
从这个解决方案中找到了一些解决方案
你试过serilog吗?我使用MongoDb