Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net NLog不在VS 2017.NET核心项目中工作_Asp.net_Asp.net Core_Nlog_Asp.net Core Webapi - Fatal编程技术网

Asp.net NLog不在VS 2017.NET核心项目中工作

Asp.net NLog不在VS 2017.NET核心项目中工作,asp.net,asp.net-core,nlog,asp.net-core-webapi,Asp.net,Asp.net Core,Nlog,Asp.net Core Webapi,我正在尝试将NLog加载到VS2017中我的.NET核心web应用程序中。本教程使用的是project.json文件,而我的VS 2017项目使用的是csproj文件 我做的第一件事是将NLog.Web.AspNetCoreNuGet包添加到我的Web项目中 然后,在我的Startup.cs文件中,我将以下内容添加到我的Startup()方法的顶部: env.ConfigureNLog("nlog.config"); 接下来,在我的Configure(IApplicationBuilder应用

我正在尝试将NLog加载到VS2017中我的.NET核心web应用程序中。本教程使用的是project.json文件,而我的VS 2017项目使用的是csproj文件

我做的第一件事是将
NLog.Web.AspNetCore
NuGet包添加到我的Web项目中

然后,在我的Startup.cs文件中,我将以下内容添加到我的
Startup()
方法的顶部:

env.ConfigureNLog("nlog.config");
接下来,在我的
Configure(IApplicationBuilder应用程序、IHostingEnvironment环境、ILoggerFactory loggerFactory、IApplicationLifetime ApplyTime)方法中,我在顶部添加了以下内容:

//add NLog to ASP.NET Core
loggerFactory.AddNLog();

//add NLog.Web
app.AddNLogWeb();
我在我的web应用的根目录中添加了一个nlog.config文件,其定义与链接教程中的相同


最后,我将
ILogger
依赖项注入到Web API控制器中,并尝试调用LogInformation()。我没有得到任何错误。它只是不将任何内容记录到我的临时目录。

尝试将配置移动到
App.config
请参阅

 NLog.Extensions.Logging-master\examples\net-fullframework-example\src\net-
 app-using-nlog\App.config as example
我跟你一样,也有同样的问题

  • 重新启动你的机器
  • 按建议打开NLog设置
    throweExceptions=“true”
    。这将允许NLog自己报告自己的异常
  • 通过设置文件的属性,确保NLog.config被复制到输出文件夹
  • 在本地运行时,请检查解决方案文件夹和子文件夹, bin\Debug\netcoreapp2.1。在调试模式下运行时,NLog.config必须存在
  • 即使使用始终复制,我的文件也没有被复制b/c visual studio混淆了NLog.config和NLog.config。由于某种原因,重启有助于实现这一点——我也在git中提交了我的更改
  • DatabaseTarget(对于.NET 2.1)不支持connectionStringName
  • 。改用
    connectionString
    。有关更多详细信息,请参阅。请参阅以了解修复方法
    什么临时目录?@mason是教程中nlog.config中定义的目录(c:\temp)。github中有一个工作示例:@Julian我刚刚使我的项目与示例完全匹配,但仍然没有任何内容。我使Startup.cs匹配,还必须导入NLog.Extensions.Logging。奇怪的是,该示例没有引用nlog.config。也复制了nlog.xsd文件。请不要打开
    throweexceptions=“true”
    。不应该在任何地方推荐它。这和用一把上了膛的猎枪指着你的脚是一样的。如果要执行故障排除,请改用NLog InternalLogger。
    throweExceptions=“true”
    是NLog故障排除文档建议的。但是您是对的,您不希望在生产环境中打开它。我想应该更新Wiki,通过ConfigExceptions=“true”并使用InternalLogger来升级。将禁止设置作为最后手段。