- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在我们的 ASP.NET Core 3 应用程序中设置一些日志记录,使用 ILogger (Microsoft.Extensions.Logging) 和 NLog 来启用写入文本文件。
问题是,ILogger 不写入跟踪和调试级别的消息。文本文件或 Visual Studio 输出窗口。使用 NLog.Logger 适用于所有级别。这个问题也存在于默认的 ASP.NET Core 3 Web API 应用程序中,从他们的官方教程中设置了 NLog。以下是我拥有的相关代码。
程序.cs
public static void Main(string[] args)
{
var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
try
{
logger.Trace("NLog Trace from Main()");
logger.Debug("NLog Debug from Main()");
logger.Info("NLog Info from Main()");
logger.Warn("NLog Warn from Main()");
logger.Error("NLog Error from Main()");
logger.Fatal("NLog Fatal from Main()");
CreateHostBuilder(args).Build().Run();
}
catch (Exception exception)
{
//NLog: catch setup errors
logger.Error(exception, "Stopped program because of exception");
throw;
}
finally
{
// Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux)
NLog.LogManager.Shutdown();
}
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.ConfigureLogging(options =>
{
options.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
}).UseNLog();
<?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="Info"
internalLogFile="c:\temp\internal-nlog.txt">
<!-- enable asp.net core layout renderers -->
<extensions>
<add assembly="NLog.Web.AspNetCore"/>
</extensions>
<!-- the targets to write to -->
<targets>
<!-- write logs to file -->
<target xsi:type="File" name="allfile" fileName="c:\temp\nlog-all-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}" />
<!-- another file log, only own logs. Uses some ASP.NET core renderers -->
<target xsi:type="File" name="ownFile-web" fileName="c:\temp\nlog-own-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" />
</targets>
<!-- rules to map from logger name to target -->
<rules>
<!--All logs, including from Microsoft-->
<logger name="*" minlevel="Trace" writeTo="allfile" />
<!--Skip non-critical Microsoft logs and so log only own logs-->
<logger name="Microsoft.*" maxlevel="Info" final="true" /> <!-- BlackHole without writeTo -->
<logger name="*" minlevel="Trace" writeTo="ownFile-web" />
</rules>
</nlog>
{
"Logging": {
"LogLevel": {
"Default": "Trace",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
private readonly ILogger<WeatherForecastController> _logger;
public WeatherForecastController(ILogger<WeatherForecastController> logger)
{
_logger = logger;
}
[HttpGet]
public IEnumerable<WeatherForecast> Get()
{
_logger.LogTrace("ILogger LogTrace from WeatherForecastController.");
_logger.LogDebug("ILogger LogDebug from WeatherForecastController.");
_logger.LogInformation("ILogger LogInformation from WeatherForecastController.");
_logger.LogWarning("ILogger LogWarning from WeatherForecastController.");
_logger.LogError("ILogger LogError from WeatherForecastController.");
_logger.LogCritical("ILogger LogCritical from WeatherForecastController.");
var rng = new Random();
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = rng.Next(-20, 55),
Summary = Summaries[rng.Next(Summaries.Length)]
})
.ToArray();
}
2020-05-26 09:48:41.2752||TRACE|NLogTest.Program|NLog Trace from Main() |url: |action:
2020-05-26 09:48:41.3081||DEBUG|NLogTest.Program|NLog Debug from Main() |url: |action:
2020-05-26 09:48:41.3081||INFO|NLogTest.Program|NLog Info from Main() |url: |action:
2020-05-26 09:48:41.3081||WARN|NLogTest.Program|NLog Warn from Main() |url: |action:
2020-05-26 09:48:41.3081||ERROR|NLogTest.Program|NLog Error from Main() |url: |action:
2020-05-26 09:48:41.3081||FATAL|NLogTest.Program|NLog Fatal from Main() |url: |action:
2020-05-26 09:48:41.9009||INFO|NLogTest.Controllers.WeatherForecastController|ILogger LogInformation from WeatherForecastController. |url: https://localhost/weatherforecast|action: Get
2020-05-26 09:48:41.9162||WARN|NLogTest.Controllers.WeatherForecastController|ILogger LogWarning from WeatherForecastController. |url: https://localhost/weatherforecast|action: Get
2020-05-26 09:48:41.9162||ERROR|NLogTest.Controllers.WeatherForecastController|ILogger LogError from WeatherForecastController. |url: https://localhost/weatherforecast|action: Get
2020-05-26 09:48:41.9219||FATAL|NLogTest.Controllers.WeatherForecastController|ILogger LogCritical from WeatherForecastController. |url: https://localhost/weatherforecast|action: Get
最佳答案
正如 rolf 所说,如果您只是使用 Visual Studio IIS express 调试 asp.net 核心应用程序,则应该使用 appsettings.development.json 而不是 appsettings.json,因为 ASPNETCORE_ENVIRONMENT 环境变量已更改为 Development
.
您可以在 launchSettings.json 中找到以下设置:
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "weatherforecast",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"CoreWebAPIIssue": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "weatherforecast",
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
{
"Logging": {
"LogLevel": {
"Default": "Trace",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
}
关于c# - ILogger 未将 TRACE 和 DEBUG 消息写入目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62017325/
我在 X、Y 中有一个连续的点集合,我想将它们“追踪”到一组贝塞尔曲线中。是否可以为此使用任何开源位图到矢量跟踪算法或库? 最佳答案 这取决于你想要完成什么。如果您想查看“最佳拟合”曲线,或者至少是粗
这是我的程序: #include int sc_main(int argc, char* argv[]) { sc_signal a, b, c, d; // trace file
我想跟踪状态单子(monad)的变化。这不起作用: main :: IO () main = do print $ snd $ execState compute initialState t
Trace.Write 之间有什么区别? Writes information about the trace to the trace listeners 和Trace.TraceInformati
在 Chrome 中,您可以通过在运行时设置标志(使用 --js-flags="--stack-trace-limit " )或通过控制台(使用 Error.stackTraceLimit )来增加堆
我有一个第三方 Windows 服务,它控制/监视设备并更新 Oracle 数据库。他们的服务偶尔会报告关于数据库中的行/列“坏”的错误,但不会给出底层数据库错误,他们的服务需要重新启动,一切正常。当
我看到了这个关于 Tracing paint operations in Chrome Canary 的短视频 我已经尝试了所有选项,但无法使用这些出色的功能。 1.油漆(快照): 2.图层 View
在我的一个项目(.net core 3.1)中,我需要一种将 System.Diagnostics.Trace.WriteLine 重定向到 Serilog 文件的方法。我找到了 SerilogTra
我正在编写一个自动分析系统,以在我的应用程序中分析不同的 GPU 密集型屏幕。为此,我一直在尝试使用“XCode Instruments”,使用捕获 gpu 使用数据的“OpenGL ES Drive
我正在学习来自 JustForFunc episode 22 的教程 在 main.go 的 main() 开头添加这两行: trace.Start(os.Stdout) defer trace.St
我正在将 History.js 中的绑定(bind)编写到 PureScript 中,但仍在努力理解 Eff monad、一排效果是什么以及它们为何有值(value)。现在我用 EasyFFI 写了以
我不确定我是否理解 ETW 使用 System.Diagnostics.Tracing 和使用 System.Diagnostics.Trace 之间的主要区别。我知道使用它们我可以将事件转储到一些输
我需要像 native 一样的缩进和非缩进处理 trace class .有什么想法可以用 log4net 文件和控制台 appender 完成吗?谢谢 最佳答案 我建议将 log4net 控制台附加
当使用 Trace.Listener 时,任何人都可以告诉我为什么 Trace.Write(string message, string category) 方法时不将类别字符串传递给 TraceFi
我有一个从 Apache2 提供的 Django Web 应用程序,在 Docker 容器中使用 mod_wsgi,该容器运行在 Google Cloud Platform 的 Kubernetes
我的 LogCat 出现一些错误... E/Trace(627): error opening trace file: No such file or directory (2) 然后我找不到解决方案
我正在关注本教程:https://huggingface.co/transformers/torchscript.html 创建我的自定义 BERT 模型的痕迹,但是在运行完全相同的 dummy_in
我理解当请求包含 Ocp-Apim-Trace: true 时,如下所示: GET /api/v1/BotConfig HTTP/1.1 Host: xyz.azure-api.net Cache-C
我理解当请求包含 Ocp-Apim-Trace: true 时,如下所示: GET /api/v1/BotConfig HTTP/1.1 Host: xyz.azure-api.net Cache-C
My Microservices application has 3 different Microservices. many of them have been created with j
我是一名优秀的程序员,十分优秀!