gpt4 book ai didi

c# - Appsettings Json 中的 ILoggingBuilder 日志记录 LogLevel 似乎未在 Azure 日志流或 Blob 日志中得到确认

转载 作者:行者123 更新时间:2023-12-04 19:33:43 24 4
gpt4 key购买 nike

我创建了一个新的 .net core 2.1 Web 应用程序并部署到 Azure,日志流和应用程序日志记录到 Blob 存储似乎不支持我的日志记录配置。

我在 Visual Studio 2019 中使用新项目为 .net core 2.1 Web 应用创建了一个新解决方案。在家庭 Controller 索引路由中,我们添加了一行记录一些信息,如下所示:

private readonly ILogger<HomeController> _logger;

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

public IActionResult Index()
{
_logger.LogInformation("=========================================");
_logger.LogError("=========================================");
return View();
}

appsettings.Development.json 中,我们将系统和 Microsoft 的 LogLevel 设置为“错误”。

我期望 Azure 中的行为与本地运行时的行为相同。在本地访问索引路由并将系统和 Microsoft 的 appsettings.Development.json LogLevel 设置为“信息”时,我们在调试输出窗口中看到此输出:

Microsoft.AspNetCore.Hosting.Internal.WebHost:Information: Request starting HTTP/1.1 GET http//localhost:44378/
Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler:Information: Identity.Application was not authenticated. Failure message: Unprotect ticket failed Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:Information: Route matched with {action = "Index", controller = "Home", page = "", area = ""}. Executing controller action with signature Microsoft.AspNetCore.Mvc.IActionResult Index() on controller LoggingTest.Controllers.HomeController (LoggingTest). Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:Information: Executing action method LoggingTest.Controllers.HomeController.Index (LoggingTest) - Validation state: Valid LoggingTest.Controllers.HomeController:Information: ========================================= LoggingTest.Controllers.HomeController:Error: ========================================= Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:Information: Executed action method LoggingTest.Controllers.HomeController.Index (LoggingTest), returned result Microsoft.AspNetCore.Mvc.ViewResult in 7.9475ms. Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor:Information: Executing ViewResult, running view Index. Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor:Information: Executed ViewResult - view Index executed in 11.4824ms. Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:Information: Executed action LoggingTest.Controllers.HomeController.Index (LoggingTest) in 37.629ms Microsoft.AspNetCore.Hosting.Internal.WebHost:Information: Request finished in 54.1369ms 200 text/html; charset=utf-8

当系统和 Microsoft 设置为“错误”时:

LoggingTest.Controllers.HomeController:Information: ========================================= LoggingTest.Controllers.HomeController:Error: .=========================================

我们希望 LogStream 和日志的输出就是这种情况。我们本质上不希望日志中包含 EfCore 和其他 Microsoft 相关信息,除非其 LogLevel“错误”。但我们希望记录“信息”级别的日志。

发布到 Azure 并将 ASPNETCORE_ENVIRONMENT 设置为开发后,以使用相同的 Appsettings 设置。调用索引后,日志流和日志的 blob 如下所示:

2019-05-17 15:57:24.844 +00:00 [Information] Microsoft.AspNetCore.Hosting.Internal.WebHost: Request starting HTTP/1.1 GET http//loggingtest20190517104201.azurewebsites.net/ 2019-05-17 15:57:24.844 +00:00 [Information] Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker: Route matched with {action = "Index", controller = "Home", page = "", area = ""}. Executing action LoggingTest.Controllers.HomeController.Index (LoggingTest) 2019-05-17 15:57:24.844 +00:00 [Information] Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker: Executing action method LoggingTest.Controllers.HomeController.Index (LoggingTest) - Validation state: Valid 2019-05-17 15:57:24.844 +00:00 [Information] LoggingTest.Controllers.HomeController: ========================================= 2019-05-17 15:57:24.845 +00:00 [Error] LoggingTest.Controllers.HomeController: ========================================= 2019-05-17 15:57:24.845 +00:00 [Information] Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker: Executed action method LoggingTest.Controllers.HomeController.Index (LoggingTest), returned result Microsoft.AspNetCore.Mvc.ViewResult in 0.0635ms. 2019-05-17 15:57:24.845 +00:00 [Information] Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor: Executing ViewResult, running view Index. 2019-05-17 15:57:24.845 +00:00 [Information] Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor: Executed ViewResult - view Index executed in 0.8902ms. 2019-05-17 15:57:24.845 +00:00 [Information] Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker: Executed action LoggingTest.Controllers.HomeController.Index (LoggingTest) in 1.0913ms 2019-05-17 15:57:24.846 +00:00 [Information] Microsoft.AspNetCore.Hosting.Internal.WebHost: Request finished in 1.4542ms 200 text/html; charset=utf-8 2019-05-17 15:57:24.941 +00:00 [Information] Microsoft.AspNetCore.Hosting.Internal.WebHost: Request starting HTTP/1.1 GET

The rest of log removed for brevity...

这是我的 appsettings.development.json 文件:

{
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Error",
"Microsoft": "Error"
}
}
}

这是我的 appsettings.json 文件:

{
"ConnectionStrings": {
"DefaultConnection": "Removed"
},
"AllowedHosts": "*"
}

Azure Web App 中设置的环境变量:

ASPNETCORE_ENVIRONMENT = Development

Program.cs 和 Startup.cs 未对项目模板进行修改。

public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}

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

为什么我的日志级别没有得到遵守?

最佳答案

终于能够通过将这些设置放入我的 appsettings.development.json 文件中来使其工作:

{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Information",
"System": "Error",
"Microsoft": "Error"
},
"AzureAppServicesBlob": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Error",
"System": "Error"
}
},
"AzureAppServicesFile": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Error",
"System": "Error"
}
}
}
}

关于c# - Appsettings Json 中的 ILoggingBuilder 日志记录 LogLevel 似乎未在 Azure 日志流或 Blob 日志中得到确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56190165/

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