gpt4 book ai didi

asp.net-core - NLog 未登录所有级别

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

带有最新 Nlog 的 ASPNET Core 2.0。

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

我的配置文件很简单,我只是想让它记录所有事情。

<?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.jsonappsettings.Production.json 之类的文件来创建特定于环境的配置)。

关于asp.net-core - NLog 未登录所有级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47058036/

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