繁体   English   中英

如何在 ASP.NET Core 7 禁用自动日志写入 EventLog?

[英]How to disable automatic log writing to EventLog at ASP.NET Core 7?

我有一个简单的 ASP.NET Core 7 Web API 我希望能够写入信息 Windows EventLog。

问题是每个对Get()操作的请求都会自动写入我想禁用的 EventLog 中的大约 7 个日志,例如:

Request finished HTTP/2 GET https://localhost:44382/weatherforecast - - - 200 - text/plain;+charset=utf-8 2.3546ms
Executed endpoint 'LogTest.Controllers.WeatherForecastController.Get (LogTest)'
Executed action LogTest.Controllers.WeatherForecastController.Get (LogTest) in 0.827ms

我希望能够将信息日志写入 EventLog,因此为了禁用 7 个自动日志,我尝试像这样过滤 LogLevel

eventLogSettings.Filter = (x, y) => y >= LogLevel.Warning;

但是之后

_logger.LogInformation("My Log Test");

未写入事件日志。

这是我在Program.cs中的代码:

var builder = WebApplication.CreateBuilder(args);
    
builder.Logging.ClearProviders();
builder.Logging.AddConsole();
    
builder.Logging.AddEventLog(eventLogSettings =>
    {
        eventLogSettings.LogName = "LogTest";
        eventLogSettings.SourceName = "Test1";
    
        eventLogSettings.Filter = (x, y) => y >= LogLevel.Warning;
    });
    
builder.Services.AddControllers();
var app = builder.Build();

app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();

WeatherForecastController.cs中:

using Microsoft.AspNetCore.Mvc;

namespace LogTest.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class WeatherForecastController : ControllerBase
    {
        private readonly ILogger<WeatherForecastController> _logger;

        public WeatherForecastController(ILogger<WeatherForecastController> logger)
        {
            _logger = logger;
        }

        [HttpGet]
        public string Get()
        {
            _logger.LogInformation("My Log Test");

            return "Test";
        }
    }
}

在此先感谢您的帮助,

股份公司

您可以尝试在 appsettings.json 中进行如下设置:

"EventLog": {
      "LogLevel": {
        "Default": "Information",
        "Microsoft": "Warning"
      }
    }

并查看本文档中的相关信息:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM