我正在将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
答案 0 :(得分:0)
这是正确的。 AspNetBufferingWrapper在NLog.Web程序包中,而不在NLog.Web.AspNetCore中。
(尚未)尚未移植到ASP.NET Core,因此仅ASP.NET非核心支持。