NLog 未在所有级别上记录日志

2024-01-02

ASPNET Core 2.0 与最新的 Nlog。

所有配置文件均正确加载。

我的配置文件很简单,我只是希望它记录所有内容。

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true"
      internalLogLevel="Warn"
      internalLogFile="C:\wwwLogs\nlog.log">

  <extensions>
    <add assembly="NLog.Web.AspNetCore"/>
  </extensions>

  <targets>
    <target xsi:type="File" name="allfile" fileName="C:\wwwLogs\${shortdate}.log"
            maxArchiveFiles="90"
            archiveNumbering="DateAndSequence"
            archiveAboveSize="250000"
            archiveFileName="archive/log.{#######}.log"
            archiveEvery="Day"
            concurrentWrites="true"
            layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />
  </targets>

  <rules>
    <!--All logs, including from Microsoft-->
    <logger name="*" minlevel="Trace" writeTo="allfile" />
  </rules>
</nlog>

我可以在 nlog 的跟踪日志中看到它正在将所有级别设置为正确的输出。

2017-11-01 14:21:26.3017 Trace Opening C:\wwwLogs\2017-11-01.log with allowFileSharedWriting=False
2017-11-01 14:21:28.5859 Debug Targets for TimeSlotApprovalService by level:
2017-11-01 14:21:28.5859 Debug Trace => allfile
2017-11-01 14:21:28.5859 Debug Debug => allfile
2017-11-01 14:21:28.5859 Debug Info => allfile
2017-11-01 14:21:28.5859 Debug Warn => allfile
2017-11-01 14:21:28.5859 Debug Error => allfile
2017-11-01 14:21:28.5859 Debug Fatal => allfile

在我的应用程序中,当我调用它时

_logger.LogDebug(JsonConvert.SerializeObject(resultList, Formatting.Indented));
_logger.LogError(JsonConvert.SerializeObject(resultList, Formatting.Indented));
_logger.LogCritical(JsonConvert.SerializeObject(resultList, Formatting.Indented));
_logger.LogWarning(JsonConvert.SerializeObject(resultList, Formatting.Indented));
_logger.LogTrace(JsonConvert.SerializeObject(rankedTimeSlots, Formatting.Indented));

那么日志文件只记录这些

2017-11-01 14:44:48.2570|TimeSlotApprovalService|**ERROR**|[json...

2017-11-01 14:44:48.2570|TimeSlotApprovalService|**FATAL**|[json...

2017-11-01 14:44:48.2570|TimeSlotApprovalService|**WARN**|[json...

剩下的人在哪里??跟踪和调试??信息?


ASP.NET Core 及其日志系统Microsoft.Extensions.Logging使用中央配置。无论附加的日志记录提供程序如何,此配置都适用。因此,如果您使用 NLog 作为日志记录提供程序,您仍然需要配置日志记录基础设施。

默认情况下,Web 主机构建器将自动使用appsettings.json配置日志记录详细程度。在默认模板中,配置如下所示:

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

所以默认的最小日志级别是Warning。因此,即使您将 NLog 提供程序配置为以任何日志记录级别进行日志记录,它实际上也不会收到低于以下级别的日志记录指令:Warning来自日志系统。

因此,您必须调整那里的配置才能更改它。将其设置为Trace它应该记录一切。

请注意,您仍应考虑使用此处的配置作为应记录哪些日志级别的事实来源。因此,只需保留您的 NLog 配置来记录它得到的任何内容,然后调整您的appsettings.json匹配您想要实际记录的任何内容,具体取决于当前环境(您可以创建类似的文件appsettings.Development.json and appsettings.Production.json创建特定于环境的配置)。

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

NLog 未在所有级别上记录日志 的相关文章

  • 如何在Azure功能中添加razor视图文件?

    我正在创建一个应用程序 它是 azure 函数项目 我想在该项目中使用 Razor 视图 我应该在 azure 函数中使用任何模板引擎吗 得益于一些方面的进步剃刀之光项目 https github com toddams RazorLigh
  • 当 URL 包含 ASP.Net Core 参数的“+”时出现 404 错误

    当参数包含编码为空格的空格时 我的服务器返回 404 错误 代替 20 我不明白为什么 路线的形式为 Route Search PRM1 prm1 PRM2 prm2 PRM3 prm3 我的第一个问题是如何让服务器理解这种 URL htt
  • Nlog 异步和日志序列

    在我的 nlog 配置中 我设置了
  • 如何使用源链接调试asp.net core异步方法?

    我正在尝试调试 asp net core 内部结构 看看幕后发生了什么 我根据这篇文章在VS Code中设置 net core调试 https github com OmniSharp omnisharp vscode wiki Debug
  • 在字段更改时显示 asp-validation-summary

    使用 ASP NET Core 不显眼的客户端验证 我想在字段更改时显示验证摘要 不仅仅是在表单提交上 The div div 元素在表单提交时显示每个字段的相关错误消息 但在字段修改时 且修改状态无效 则不显示 这是我的示例代码 我的型号
  • 尚未注册类型“Microsoft.AspNetCore.Mvc...”的服务

    我正在尝试测试此控制器方法 以确保它重定向到另一个控制器方法或存在模型错误 public IActionResult ResetPassword ResetPasswordViewModel viewModel if viewModel N
  • 将授权放在服务层而不是Web API层

    我正在使用 NET Core Web API 构建 REST API 我的控制器只是将请求转发到服务层并返回结果 HttpPost nameof Create public async Task
  • 在 DefaultHttpContext 上使用 FeatureCollection 时,响应对象为 null

    我正在测试一些 net Core 中间件 并希望使用整个 asp net Core http 管道来运行中间件 而不是模拟它 问题是 当我使用特征集合时 不知何故 响应对象没有在 httpRequest 中设置 并且它在请求本身上是只读的
  • 控制器方法无法捕获来自重定向的对象路由

    我正在将数据从表单发送到我的Test方法和数据都在那里 如果发生了一些错误 那么我正在映射我的ModelInput to Model然后我执行重定向到MyView通过对象路由发送的数据 由于某种原因在MyView param input为空
  • 忽略连接实体的全局查询过滤器

    全局查询过滤器在实现租户和软删除功能时非常方便 但我的问题是 例如 当我编写带有联接的查询时 dbContext entity1 Include entity2 entity3 entity4 Where something select
  • 使用signinmanager成功登录后,用户仍然显示为已注销?

    我已将 Asp Net 身份框架添加到从前端调用的 WebAPI 中 注册帐户后 并看到它在数据库中正确显示 我使用该用户的用户名和密码登录 结果成功 但根据登录管理器 用户未登录 我尝试使用 cookie 身份验证使用此示例 https
  • ASP Net Core 属性路由和双正斜杠

    正如所指出的here https stackoverflow com a 20524044 3129340 URL 中包含双斜杠是有效的 我有一个使用属性路由的 ASP Net Core 项目 一个名为GroupController用于处理
  • Asp.net core 2.1 OpenIdConnectOptions 范围不起作用

    请告诉我为什么我无法添加任何范围OpenIdConnectOptions 它不适用于 ASP NET Core MVC 客户端 但使用 js 客户端则可以正常工作 我的代码 身份服务器4客户注册 public static IEnumera
  • Mediatr 范围问题

    我正在使用 Mediatr 处理来自队列的消息 我可以得到一个简单的例子来工作 但是 当我尝试将对象注入到我的处理程序中时 我遇到了问题 public class MessageCommandHandler IRequestHandler
  • 如何使用 Signalr 编写 NLog 目标

    我正在尝试为 NLog 编写一个目标 以使用 SignalR 将消息发送到连接的客户端 这就是我现在所拥有的 我想知道的是我应该使用解析 ConnectionManager像这样 or 不知何故获取对集线器的引用 SignalrTarget
  • 在project.json .Net Core中本地管理nuget

    我不想依赖 nuget 服务来下载依赖项 我想在我的 Net Core 应用程序中本地下载并使用 nuget 包 是否可以 方法与之前相同 打开您的NuGet config https docs nuget org consume nuge
  • 如何根据 ASP.NET VNEXT MVC6 中给出的路径进行虚拟路由/重定向?

    我有一个网站 它在不同的路径上公开多个 API 每个 API 由特定于应用程序部分的控制器处理 例如example com Api Controller Action param1 stuff 其中控制器发生变化 但操作保持相当一致 我有几
  • ASP.NET Core 基于自定义策略的授权 - 不清楚

    好的 ASP NET Core 中基于自定义策略的授权 我有点理解这个新身份框架的想法 但仍然不是 100 清楚你可以用它实现什么 假设我们在 HomeController 中有一个名为 List 的 Action 此操作将查询并显示数据库
  • asp.net core / kestrel中的线程管理

    我正在解决我们已迁移到 asp net core 2 0 的 asp net 应用程序的性能 可扩展性问题 我们的应用程序作为应用程序服务托管在 azure 上 并且在任何中等流量的情况下都很容易崩溃 让我困惑的一件事是如何处理多个并发请求
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在

随机推荐