C# BuildWebHost之前的.NET核心NLog日志记录
我使用NLog,并为我的应用程序创建了自己的日志提供程序。我在StartUp类中使用NLog设置了配置 我现在将向您展示Program.cs的外观C# BuildWebHost之前的.NET核心NLog日志记录,c#,asp.net,asp.net-mvc,asp.net-core,nlog,C#,Asp.net,Asp.net Mvc,Asp.net Core,Nlog,我使用NLog,并为我的应用程序创建了自己的日志提供程序。我在StartUp类中使用NLog设置了配置 我现在将向您展示Program.cs的外观 public static void Main(string[] args) { var configurationDic = CreateConfigurationDictionary(); // In here it can throw an exception therefore I need to
public static void Main(string[] args)
{
var configurationDic = CreateConfigurationDictionary();
// In here it can throw an exception therefore I need to be able to log here
var webHost = BuildWebHost(configurationDic, args);
var applicationLogger = webHost.Services.GetService<IMyTestLogProvider>().ApplicationLogger;
applicationLogger.LogInformation("*************** Start up ***************");
webHost.Run();
}
但是我的应用程序不知道什么是NLogBuilder,尽管我已经安装了NLOGNuget软件包
有什么想法吗
致意
抢劫
但是我的应用程序不知道什么是NLogBuilder,尽管我已经安装了NLOGNuget软件包
检查您的依赖项,您需要:
- NLog.Web.AspNetCore 4.5+(目前为beta04)
- NLog 4.4.12+(例如NLog 4.5测试版)-无NLog 5!-如果不使用.NET标准1
- 如果您使用的是.NET标准1(而不是.NET标准2)-请使用NLog 5+(目前为beta版)
- NLog.Web.AspNetCore 4.5+(目前为beta04)
- NLog 4.4.12+(例如NLog 4.5测试版)-无NLog 5!-如果不使用.NET标准1
- 如果您使用的是.NET标准1(而不是.NET标准2)-请使用NLog 5+(目前为beta版)
在BuildWebHost(更新到NLog 4.5.0 RTM或更新版本)之前,请参阅更新的Wiki以了解如何激活日志记录
罗尔夫的答案不起作用,因为有细微的差别 var logger=NLog.Web.LogBuilder.ConfigureNLog(“NLog.config”).GetCurrentClassLogger() 应该是 var logger=NLog.Web.NLogBuilder.ConfigureNLog(“NLog.config”).GetCurrentClassLogger()
}罗尔夫的答案不起作用,因为有细微的差别 var logger=NLog.Web.LogBuilder.ConfigureNLog(“NLog.config”).GetCurrentClassLogger() 应该是 var logger=NLog.Web.NLogBuilder.ConfigureNLog(“NLog.config”).GetCurrentClassLogger()
}在web主机启动之前,您到底在做什么?这些主机需要登录,并且不能延迟到主机实际初始化时才能启动?如果您在那里发生了很多事情,这可能表明您的web应用程序做了太多与web应用程序无关的事情。此通知已发布。它应该为net461启用NLogBuilder。在需要登录且不能延迟到主机实际初始化时的web主机之前,您到底在做什么?如果您在那里发生了很多事情,这可能表明您的web应用程序做了太多与web应用程序无关的事情。此通知已发布。它应该为net461启用NLogBuilder。不工作!正如原始海报所示,“我的应用程序不知道NLogBuilder是什么”。我有nlog 4.5.6,core 2.0.3,即使这是一个api/mvc,我也尝试添加nlog.web.aspnetcore 4.5.4。@ginalster感谢您指出错误。更新了代码。不工作!正如原始海报所示,“我的应用程序不知道NLogBuilder是什么”。我有nlog 4.5.6,core 2.0.3,即使这是一个api/mvc,我也尝试添加nlog.web.aspnetcore 4.5.4。@ginalster感谢您指出错误。更新了代码。
var logger = NLogBuilder.ConfigureNLog("NLog.config").GetCurrentClassLogger();
public static void Main(string[] args)
{
// NLog: setup the logger first to catch all errors
var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
try
{
logger.Debug("init main");
BuildWebHost(args).Run();
}
catch (Exception ex)
{
//NLog: catch setup errors
logger.Error(ex, "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 void Main(string[] args)
{
// NLog: setup the logger first to catch all errors
var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
try
{
logger.Debug("init main");
BuildWebHost(args).Run();
}
catch (Exception ex)
{
//NLog: catch setup errors
logger.Error(ex, "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();
}