NLog 找不到自定义目标?

NLog can´t find custom target?

我有一个 WinForm C# 项目,我在其中添加了 NLog 和自定义目标。要加载这个目标,我在 NLog 配置中有这样的东西:

<logger name="GeneralLogger" minlevel="Warn" writeto="customTarget"></logger>

<target name="customTarget" type="LogToService"></target>

在 nlog-internal.log 中我找到了这个:

2020-05-12 11:48:16.0083 Warn Error has been raised. Exception: NLog.NLogConfigurationException: Failed to create target type: LogToService ---> System.ArgumentException: Target cannot be found: 'LogToService' at NLog.Config.Factory`2.CreateInstance(String itemName) at NLog.Config.LoggingConfigurationParser.CreateTargetType(String targetTypeName) --- End of inner exception stack trace ---

我看到了有关使用程序集添加扩展的建议,但自定义目标与我添加 NLog Nuget 的项目位于同一个项目中?

此致

由于它不在单独的程序集中,您可以这样做:

// NLog 4.7+
NLog.LogManager.Setup().SetupExtensions(s =>
   s.RegisterTarget<MyNamespace.LogToService>("LogToService")
);

或 nlog.config 中的这个(在 <targets> 之前:

  <extensions> 
    <add assembly="YourAssembly"/> 
  </extensions> 

有关所有选项,请参阅 Register your custom component