使用ASP.NET CORE 2和AspNetBufferingWrapper的NLog-找不到错误

时间:2018-07-14 22:26:30

标签: c# logging asp.net-core nlog

我正在将ASP.NET CORE 2.1与NLog一起使用。我可以登录到电子邮件,文件和内部日志而没有问题。

我想为http请求(例如该请求的日志)发送一次电子邮件。

我了解到此AspNetBufferingWrapper将在参考文献https://github.com/NLog/NLog/wiki/AspNetBufferingWrapper-target

下工作

在我的nlog.config中,我有以下目标...包装我工作中的电子邮件目标的aspnetbuffer。

<target xsi:type="AspNetBufferingWrapper"
     name="AspNetBufferingWrapper1"
     bufferGrowLimit="Integer"
     growBufferAsNeeded="Boolean"
     bufferSize="Integer">

  <target name="WrappedRulesEngineLogMail" xsi:type="Mail"
        smtpServer="TEST.TEST.COM"
          subject="Wrapped Rules Engine Log"              
        layout="[${longdate}] - [${machinename}] - [${level}] - [${message}] - [${exception:format=toString}]"
        from="noreply@TEST.com"
        to="ME@TEST.com"/>      
</target>

内部日志响应此错误消息

nlog.config失败。异常:NLog.NLogConfigurationException:解析C:\ inetpub \ wwwroot \ IT \ TEST \ ACES \ Main \ Aces.Web \ bin \ Debug \ netcoreapp2.1 \ nlog.config时发生异常。 ---> System.ArgumentException:找不到目标:“ AspNetBufferingWrapper”。是否不包含NLog.Web?    在NLog.Config.Factory`2.CreateInstance(字符串名称)处    在NLog.Config.XmlLoggingConfiguration.ParseTargetsElement(NLogXmlElementtargetElement)    在NLog.Config.XmlLoggingConfiguration.ParseNLogElement(NLogXmlElement nlogElement,字符串filePath,布尔值autoReloadDefault)    在NLog.Config.XmlLoggingConfiguration.Initialize(XmlReader reader,String fileName,Boolean ignoreErrors)

为完整起见,我将在Program.cs中包含我的设置

 public static IWebHost CreateDefaultBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()                
            .ConfigureLogging((context, logging) => {
                logging.ClearProviders();                    logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
                if (context.HostingEnvironment.IsDevelopment())
                {
                    logging.AddDebug();
                }
            })
            .UseNLog()  // NLog: setup NLog for Dependency injection
            .Build();

我已经加载了这些nuget包          

我不知道该如何解决  找不到目标:'AspNetBufferingWrapper'。不包括NLog.Web吗?在NLog.Config.Factory`2.CreateInstance(String name)

为什么可以找到目标?

ty

1 个答案:

答案 0 :(得分:0)

这是正确的。 AspNetBufferingWrapper在NLog.Web程序包中,而不在NLog.Web.AspNetCore中。

(尚未)尚未移植到ASP.NET Core,因此仅ASP.NET非核心支持。

Link to feature request