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

2023-12-21

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

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

private readonly ILogger<HomeController> _logger;

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

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

并且在appsettings.Development.json我们已经设置了LogLevel系统和微软“错误”。

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

Microsoft.AspNetCore.Hosting.Internal.WebHost:信息:请求 启动 HTTP/1.1 GET http://localhost:44378/
Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler:信息: Identity.Application 未经过身份验证。失败消息:取消保护 票务失败 Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:信息: 与 {action = "Index", controller = "Home", page = "", 匹配的路线 面积=“”}。使用签名执行控制器操作 控制器上的 Microsoft.AspNetCore.Mvc.IActionResult Index() LoggingTest.Controllers.HomeController(LoggingTest)。 Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:信息: 执行操作方法 LoggingTest.Controllers.HomeController.Index (LoggingTest) - 验证状态:有效 LoggingTest.Controllers.HomeController:信息: =========================================== LoggingTest.Controllers.HomeController:错误: =========================================== Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker :信息: 执行的操作方法 LoggingTest.Controllers.HomeController.Index (LoggingTest),返回结果Microsoft.AspNetCore.Mvc.ViewResult中 7.9475 毫秒。 Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor:信息: 执行ViewResult,运行视图Index。 Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor:信息: 已执行 ViewResult - 在 11.4824 毫秒内执行的视图索引。 Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:信息: 执行的操作 LoggingTest.Controllers.HomeController.Index (记录测试)37.629ms Microsoft.AspNetCore.Hosting.Internal.WebHost:信息:请求 54.1369ms 200 text/html 完成;字符集=utf-8

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

LoggingTest.Controllers.HomeController:信息: =========================================== LoggingTest.Controllers.HomeController:错误: .============================================

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

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

2019-05-17 15:57:24.844 +00:00 [信息] Microsoft.AspNetCore.Hosting.Internal.WebHost:请求启动 HTTP/1.1 GET http://loggingtest20190517104201.azurewebsites.net/ 2019-05-17 15:57:24.844 +00:00 [信息] Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:路线 与{action =“Index”,controller =“Home”,page =“”,area =匹配 “”}。执行操作 LoggingTest.Controllers.HomeController.Index (记录测试) 2019-05-17 15:57:24.844 +00:00 [信息] Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:正在执行 操作方法 LoggingTest.Controllers.HomeController.Index (LoggingTest) - 验证状态:有效 2019-05-17 15:57:24.844 +00:00 [信息]LoggingTest.Controllers.HomeController: =========================================== 2019-05-17 15:57: 24.845 +00:00 [错误] LoggingTest.Controllers.HomeController:====================================== ===== 2019-05-17 15:57:24.845 +00:00 [信息] Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:已执行 操作方法 LoggingTest.Controllers.HomeController.Index (LoggingTest),返回结果Microsoft.AspNetCore.Mvc.ViewResult中 0.0635 毫秒。 2019-05-17 15:57:24.845 +00:00 [信息] Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor:正在执行 ViewResult,运行视图Index。 2019-05-17 15:57:24.845 +00:00 [信息] Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor:已执行 ViewResult - 查看索引在 0.8902 毫秒内执行。 2019-05-17 15:57:24.845 +00:00 [信息] Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:已执行 操作 LoggingTest.Controllers.HomeController.Index (LoggingTest) 中 1.0913ms 2019-05-17 15:57:24.846 +00:00 [信息] Microsoft.AspNetCore.Hosting.Internal.WebHost:请求完成于 1.4542ms 200 文本/html; charset=utf-8 2019-05-17 15:57:24.941 +00:00 [信息] Microsoft.AspNetCore.Hosting.Internal.WebHost:请求 启动 HTTP/1.1 GET

为了简洁起见,删除了日志的其余部分...

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

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

这是我的 appsettings.json 文件:

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

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

ASPNETCORE_ENVIRONMENT = 开发 https://i.stack.imgur.com/Smk2h.png

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"
      }
    }
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Appsettings Json 中的 ILoggingBuilder 日志记录 LogLevel 似乎未在 Azure 日志流或 Blob 日志中得到确认 的相关文章

  • boost::interprocess 准备好迎接黄金时间了吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在开发一个由内存映射文件支持的线
  • 在两个 .cpp 文件之间定义全局变量 [重复]

    这个问题在这里已经有答案了 如何在 A cpp 和 B cpp 之间共享 全球化 bool 变量 其中它们都不包含其他 h 文件 他们有其他联合头文件 但彼此没有 我可以在这些共享标头中定义全局变量吗 Thanks 我可以在这些共享标头中定
  • 配置 AKS 负载均衡器以进行 HTTPS 访问

    我正在将最初为 AWS Fargate 容器服务开发的应用程序移植到 Azure 下的 AKS 在 AWS 实现中 创建了一个应用程序负载均衡器并将其放置在 UI 微服务前面 该负载均衡器配置为使用签名证书 允许 https 访问我们的后端
  • C#9 顶级语句文件上的属性

    我正在尝试向顶级语句文件添加属性 但没有找到任何相关信息 是否可以 对于某些上下文 我想仅在该文件中禁用规则 SuppressMessage StyleCop CSharp LayoutRules SA1516 ElementsMustBe
  • 实体框架中的重复键异常?

    我试图捕获当我将具有给定用户名的现有用户插入数据库时 引发的异常 正如标题所说 我正在使用 EF 当我尝试将用户插入数据库时 引发的唯一异常是 UpdateException 如何提取此异常以识别其是否是重复异常或其他异常 catch Up
  • C++ - 模板专业化和部分专业化

    我一直在互联网和 stackoverflow 上寻找具体的答案 但我似乎找不到 我必须创建一个通用类 然后实现特定的功能 我的具体说明是 您需要使用模板表达式参数以及模板类专业化和部分专业化 我有一个模板类 template
  • 为什么 LinkedList 通常比 List 慢?

    我开始在我的一些 C 算法中使用一些 LinkedList 而不是列表 希望能够加快速度 然而 我注意到他们只是感觉更慢 像任何优秀的开发人员一样 我认为我应该尽职调查并验证我的感受 所以我决定对一些简单的循环进行基准测试 我认为用一些随机
  • 如何检查 .NET 4.0 中的泛型参数是否是动态的

    我有课ObjectMapper
  • TestMethod:异步任务 TestSth() 不适用于 .NET 4.0

    我正在尝试使用 NET 4 0 BCL Async 和 MsTest 运行异步测试方法 看来这个设置不能处理 测试方法 异步Task测试Sth 由于测试用例资源管理器中缺少条目 将签名更改为异步后void 我可以运行测试用例 但结果错误 根
  • Windows 程序如何临时更改其时区?

    我写了一个函数来返回time t与给定日期的午夜相对应的值 当给定日期没有午夜时 它返回最早可用的时间 例如 当埃及进入夏令时时 这种情况就可能发生 今年 时间更改于 4 月 29 日晚上午夜生效 因此时钟直接从 23 59 转到 01 0
  • C++ 析构函数:何时释放内存?

    如果我删除一个导致其析构函数被调用的对象 那么内存是在析构函数完成函数中的任何操作之前还是之后被释放 仅当最小派生类子对象被销毁后才会释放内存 所以如果你有 class Base class Derived public Base publ
  • 在 C++ 中处理音频缓冲区时,如何执行从 float -> double -> float 的转换

    我目前正在开发一个应用程序 其中音频样本帧在以下回调中进行处理 void Eav07AudioProcessor processBlock AudioSampleBuffer buffer for int channel 0 channel
  • NodeJS 中的缩进多行日志记录

    我要打印JSON stringify d 反对控制台 将上下文作为 Mocha 测试套件输出的一部分 当测试缩进时 我希望对象日志行向右缩进足够远 例如 3 4 个制表符空格 以便它们可以识别地位于右侧describe group 我怎样才
  • ASP MVC 5 - 403 customError 不起作用

    我正在尝试为我的应用程序创建自定义错误页面 它在大部分情况下都有效 但不适用于403 errors 我的网络配置
  • 为什么在 .net 中使用 Invoke on Controls? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么 NET不允许跨线程操作 https stackoverflow com questions 2896504 why net does not allow cross thread operat
  • fscanf 和 EOF 中的否定扫描集

    我的文件中有一个以逗号分隔的字符串列表 姓名 1 姓名 2 姓名 3 我想跳过所有逗号来阅读这些名字 我写了以下循环 while true if fscanf file my string 1 break 然而 它总是比预期多执行一次 给定
  • 为什么从绑定返回的对象会忽略额外的参数?

    假设我有一个带有两个参数的函数 void f int x int y 我想绑定其中之一 我可以用std bind如下 auto partiallyBoundF std bind f 10 1 partiallyBoundF仅需要一个参数 但
  • Intel 和 AMD 处理器有相同的汇编程序吗?

    C语言被用来编写Unix以实现可移植性 使用不同编译器编译的同一个C语言程序会产生不同的机器指令 为什么 Windows 操作系统能够在两者上运行Intel https en wikipedia org wiki Intel and AMD
  • C 中的静态和动态绑定(严格来说是 C,而不是 C++)是什么?

    我最初对发布这个问题感到担忧 以免它重复 但即使在谷歌搜索了许多关键字之后 我在 StackOverflow 上找不到任何解释 C 的静态和动态绑定的链接 尽管有 C 的问题和答案 但是都涉及classes以及显然不适合 C 的东西 Sta
  • 请解释为什么Java和C对此代码给出不同的答案

    public class Test public static void main String args int i 10 i i System out println value of i is i 输出是 10 当我在中执行类似的代码

随机推荐

  • NSOutlineView 组间距

    我正在开发 NSOutlineView SourceList 并希望用我自己的样式替换当前样式 以便更好地查看我的应用程序 我已经使用自定义 NSTableViewRows 更改了默认标题和内容单元格 这很好用 但现在我可以看到组之间有一个
  • 在 WebView 中禁用邮寄地址的自动链接

    android WebView 将自动检测 html 中的邮寄地址 并允许您单击它来启动地图 有没有办法在不更改本机代码的情况下禁用此功能 我可以在 html 标记中添加一些内容或取消 javascript 事件来防止这种情况发生吗 如果我
  • Angular 6 / 在 tsconfig.lib.json 中声明库的路径

    我正在尝试配置路径Angular 6库 我已经成功配置了以前的 Angular 项目的路径 这是我以前的应用程序的工作原理tsconfig json file compilerOptions baseUrl src paths class
  • 变量多态性的初始化

    假设您有以下代码 class A int i 4 A print void print System out println A class B extends A int i 2 this line public static void
  • 更新后的状态值不会在反应函数内部更新

    反应状态更新值显示在使用效果中 但内部函数仅显示旧值 const counter setCounter useState 0 我正在尝试更新设定间隔函数内的计数器值 const handleIncrease gt clearInterval
  • 规范模式对象应该在哪一层“更新”?

    因此 我在这里查看了一些有关规范模式的帖子 但尚未找到此问题的答案 我的问题是 在 n 层架构中 我的规范到底应该在哪里 更新 我可以将它们放在我的服务层 又名 应用程序层 有时被称为 基本上 aspx 代码隐藏会与之对话的东西 中 但我觉
  • 在自定义视图 onDraw 中使用硬件层

    所以我试图了解如何在自定义中正确使用硬件加速 如果可用 View那是持续的动画 这是我的基本前提onDraw canvas drawColor mBackgroundColor for Layer layer mLayers canvas
  • Doctrine2 映射:2 个字段映射到 1 个字段(ManyToOne)

    我有 2 个实体 即比赛和团队 一支球队可以进行一对多的比赛 但是 我的 Match 实体由 2 个字段组成 它们引用同一实体 Team 他们是 homeTeam 和 awayTeam 如何将团队中的同一字段 matches 引用为双向关系
  • Pyinstaller 和 py2exe 导致错误:“元组索引超出范围”

    这是我第一次使用 Pyinstaller 所以请耐心等待 为什么下面的结果会出错呢 我如何解决它 我正在尝试将我编写的python程序转换为windows exe C WINDOWS system32 gt pyinstaller C Us
  • 从窗口引用子用户控件中的网格

    我使用 ItemsControl 将许多用户控件添加到我的主窗口 这工作正常 但我想在将控件添加到 ItemsControl 时添加动画 我正在使用此线程中的代码 以动画方式插入 ItemsControl https stackoverfl
  • SBT 0.13.1 离线

    我试图了解 SBT 0 13 1 离线使用 我的目标是将离线环境所需的一切都存储在 U 盘上 我认为如果复制了 ivy 缓存 那么 SBT 就可以从中提取所需的所有内容 但情况似乎并非如此 例如 为了确定起见 我将首先删除 ivy2 文件夹
  • 应用程序 SQLite DB 存储在 Android 上的哪里

    我试图确定 Android 手机上应用程序 SQLite 数据库的存储位置 我正在测试 需要能够删除它并测试创建代码 在模拟器上 它位于 data data app package name something db 中 但我无法在实际手机
  • Java 7 自动资源管理 JDBC(try-with-resources 语句)

    如何将创建 接收连接 查询数据库以及可能处理结果的常见 JDBC 习惯与 Java 7 的自动资源管理 try with resources 语句 集成 Tutorial http docs oracle com javase tutori
  • spring 手动销毁bean而不是ctx.close()

    是否可以告诉spring的容器销毁特定的bean 原型 以节省内存 我不想使用 ctx close 来看到这个 bean 被销毁 而是在运行时 如果我理解正确的话 你想删除运行时在 ctx 中定义的 bean 我会使用BeanDefinit
  • 有没有办法通过appSetting配置来配置多个Serilog RollingFiles

    有没有办法通过appSetting配置多个Serilog RollingFiles 我想为信息和错误级别创建单独的日志文件 在应用程序设置中配置多个日志非常简单 任务是使用过滤器 我花了近 3 个小时试图弄清楚如何实现这一点 我最终做了以下
  • Docker 卷与 Kubernetes 数据库持久卷

    Docker 镜像和 Kubernetes 集群都具有在主机 单独的容器或某种形式的云 网络存储机制上配置持久存储的机制 我试图了解它们在用例上有何不同 以及为什么您会使用其中一种而不是另一种 对于上下文 我还更多地考虑事务数据库持久性 而
  • PySpark:随机化数据框中的行

    我有一个数据框 我想随机化数据框中的行 我尝试通过给出 1 的分数来对数据进行采样 但这不起作用 有趣的是 这在 Pandas 中有效 它在 Pandas 中有效 因为在本地系统中采样通常是通过混洗数据来解决的 另一方面 Spark 通过对
  • 在Java中,对象数组是如何被垃圾回收的?

    当不再引用一个对象数组时 该数组中的对象是否也会被垃圾收集 假设没有变量引用元素 在这个页面中 http java sys con com node 376 13 http java sys con com node 37613它说 最大的
  • 如何编写 DQL select 语句来搜索单表继承表中的部分实体,但不是全部实体

    所以我在一张表中有 3 个实体 我需要能够在一个 select 语句中搜索 3 个实体中的 2 个 但我不确定如何执行此操作 Use the INSTANCE OF像这样的 dql 查询中的运算符 其中User是你的基类 em gt cre
  • Appsettings Json 中的 ILoggingBuilder 日志记录 LogLevel 似乎未在 Azure 日志流或 Blob 日志中得到确认

    我创建了一个新的 net core 2 1 Web 应用程序并部署到 Azure 日志流和应用程序日志记录到 Blob 存储似乎不支持我的日志记录配置 我在 Visual Studio 2019 中为 net core 2 1 Web 应用