ASP.NET Core:如何让内置请求日志记录未授权(401)请求?
ASP.NET Core 记录401未授权请求的配置方法
两种日志方案都可以通过调整配置来记录401未授权请求,具体设置如下:
HTTP 日志配置
默认情况下HTTP日志中间件会过滤401状态码的请求,你可以通过修改HttpLoggingOptions来指定要包含的状态码:
builder.Services.AddHttpLogging(options => { // 明确添加401状态码到记录范围,也可用StatusCodes.Status401Unauthorized常量 options.IncludeStatusCodes = new[] { 401 }; // 若要记录所有状态码,直接设为null即可:options.IncludeStatusCodes = null; // 按需开启需要记录的字段,这里示例开启所有字段 options.LoggingFields = HttpLoggingFields.All; });
同时要确保日志级别配置正确,在appsettings.json中对应类别的日志级别设为Information或更低:
{ "Logging": { "LogLevel": { "Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware": "Information" } } }
W3C 日志配置
W3C日志同样默认排除401请求,可通过W3CLoggerOptions添加目标状态码:
builder.Services.AddW3CLogging(options => { // 添加401到要记录的状态码列表 options.StatusCodes.Add(StatusCodes.Status401Unauthorized); // 若要完全替换默认状态码列表,直接赋值即可:options.StatusCodes = new List<int> { 200, 401, 404 }; // 其他基础配置(按需调整) options.FileSizeLimit = 5 * 1024 * 1024; options.RetainedFileCountLimit = 10; });
对应的日志级别配置:
{ "Logging": { "LogLevel": { "Microsoft.AspNetCore.W3CLogging.W3CLogger": "Information" } } }
内容的提问来源于stack exchange,提问作者uhrm
相关产品推荐
相关产品推荐

