Asp.net core 使用nlog时日志文件中不显示日志
我正在将NLog与.net Core 3.1一起使用。我试图在控制器中打印调试语句,其中ILogger的注入方式如下:Asp.net core 使用nlog时日志文件中不显示日志,asp.net-core,.net-core,nlog,Asp.net Core,.net Core,Nlog,我正在将NLog与.net Core 3.1一起使用。我试图在控制器中打印调试语句,其中ILogger的注入方式如下: public MyController(ILogger<MyController> logger) { this.logger = logger; } [HttpGet)] public ActionResult<List<MyObject>> GetObjects()
public MyController(ILogger<MyController> logger) {
this.logger = logger;
}
[HttpGet)]
public ActionResult<List<MyObject>> GetObjects()
{
logger.LogDebug("helloworld");
}
我猜你应该检查你的appsettings.Development.json。在此文件中,您可以选择以下选项:
“默认值”:“信息”
如果您想接收“Debug”
日志,您应该将其更改为
“默认”:“跟踪”
在appsettings.Development.json.中,我猜NLog.config中缺少的
-根元素在复制粘贴中是错误的。但是典型的错误是忘记为NLog.config
-文件设置“如果更新就复制”。另请参阅:在遵循故障排除指南后,是否有任何错误详细信息?您好@Julian,谢谢您的回复。是的,我一看导游就知道了细节。
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.SetMinimumLevel(LogLevel.Debug);
})
.UseNLog(); // NLog: Setup NLog for Dependency injection
<targets>
<!-- write logs to file -->
<target xsi:type="File" name="allfile" fileName="c:\logs\nlog-all-${shortdate}.log"
layout="${callsite} -${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:\logs\nlog-own-${shortdate}.log"
layout="${callsite} -${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>
<logger name="*" minlevel="Debug" writeTo="allfile" />
</rules>
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Trace",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},