c# - .NET 5.0 应用程序的 Azure AppService 日志记录
问题描述
我有一个托管在 Azure AppService (linux) 上的 .NET 5.0 Web API 应用程序。问题是当我使用具有特定日志记录级别的记录器时,AppService 中的“日志流”始终显示具有“信息”级别的所有日志。
只是一个例子:
[ApiController, Route("Logs")]
public sealed partial class LogsController : ControllerBase
{
private readonly ILogger<LogsController> Logger;
public LogsController(ILogger<LogsController> logger)
{
this.Logger = logger;
}
[HttpPost(nameof(LogWarning))]
public ActionResult LogWarning()
{
this.Logger.LogWarning("Simple warning");
return this.Ok();
}
[HttpPost(nameof(LogError))]
public ActionResult LogError()
{
this.Logger.LogError("Simple error");
return this.Ok();
}
}
但是,“日志流”显示的不是预期的“警告”和“错误”级别:
2021-09-02T10:26:27.237547810Z: [INFO] [40m[1m[33mwarn[39m[22m[49m: Rpm.Api.Controllers.Admin.LogsController[0]
2021-09-02T10:26:27.237614110Z: [INFO] Simple warning
2021-09-02T11:10:47.290208822Z: [INFO] [40m[1m[33mfail[39m[22m[49m: Rpm.Api.Controllers.Admin.LogsController[0]
2021-09-02T11:10:47.290261622Z: [INFO] Simple error
有没有办法解决这个问题?PS:所有应用程序日志记录配置都是开箱即用的。
解决方案
我正在使用具有特定日志记录级别的记录器,AppService 中的“日志流”始终显示具有“信息”级别的所有日志。
正如在 Azure AppService (linux) 上托管的 .NET 5.0 Web API 应用程序中尝试的重现,您可以在日志流中看到所有日志,因为 Linux 中没有可用的选项来启用应用服务日志只有我们可以提供文件系统详细信息。如下图所示。
与我尝试使用 Windows 进行复制的方式相同,如果有任何错误、警告、信息、详细信息,我可以启用我想在日志流中查看的应用服务日志,如下图所示:
有关更多信息,请参阅以下链接:
推荐阅读
- sql-server - Inner-Join 查询在 sqlserver 2012 上没有返回任何数据
- ruby-on-rails - 如何在 Rails 中使用 proc 进行验证
- vba - 如何从 Recordset ADO 中的 csv 获取特定列
- python - 在python中,为什么我不能在打印函数中使用扩展函数?
- pattern-matching - 解析统计文件 - Logstash 的多行模式(不是错误消息)
- reactjs - React -js 开发服务器无法完成加载
- java - 我无法通过控制器传输许多对象(((
- elasticsearch-query - 使弹性搜索仅返回与我的查询匹配的字段名称
- amazon-ec2 - LightGBM 不使用所有内核和 RAM
- azure - 身份体验框架自定义策略的身份验证方法策略