gpt4 book ai didi

c# - Serilog 不记录信息日志

转载 作者:行者123 更新时间:2023-12-05 03:00:05 25 4
gpt4 key购买 nike

在我的 .NET Core 2.1 项目中,我安装了 Serilog,但由于某些原因,它不会记录信息事件。不过,它会记录错误事件。

在我的 appSettings 中我有:

    "Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Fatal",
"System": "Fatal"
}
},
"WriteTo": [
{
"Name": "File",
"Args": {
"restrictedToMinimumLevel": "Information",
"path": "D:\\Web\\098_VDSNet4\\Logs\\API.AdminPortal\\.txt",
"rollingInterval": "Day"
}
}
]
}

在我的 Startup.cs 中我有:

                Log.Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.ReadFrom.Configuration(Configuration)
.CreateLogger();

services.AddLogging(logging =>
logging.AddSerilog(dispose: true)
);

在我的代码中:

            public IActionResult Post(Address address)
{
string functionName = "AddressController:Post";

try
{
logger.LogInformation($"{functionName}");

// TOOD Additional Address validation
addressRepository.Add(address);
addressRepository.Save();

return Ok(address);
}
catch(Exception ex)
{
logger.LogError(ex, $"{functionName}: There was an error creating the address");
return BadRequest();
}

}

logger.LogInformation(我也尝试过 logger.LogDebug,但它也不起作用)不输出任何内容。但是 logger.LogError 确实记录了正确的错误。

我已经尝试将默认级别更改为 Verbose 以查看是否会启动它,但我似乎无法将错误以下的任何内容输出到日志文件。

最佳答案

您必须注入(inject) ILogger<HomeController>进入你的界面 HomeController构造函数。

    private readonly Microsoft.Extensions.Logging.ILogger _log;

public HomeController(ILogger<HomeController> logger)
{
_log = logger;
}

你必须告诉asp.net core从哪里读取配置(在 Program.cs 中添加):

public static IConfiguration Configuration { get; } = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", optional: true)
.Build();

在 Program.cs 中添加 UseSerilog :

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseSerilog();

结果:

Results for both Error and Information

关于c# - Serilog 不记录信息日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57218357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com