NLog xsi:键入不使用自定义目标

时间:2014-11-21 16:01:48

标签: c# .net nlog

我想在NLog中使用以下命令编写自定义目标: https://github.com/nlog/nlog/wiki/How%20to%20write%20a%20Target

并将我的日志写入MongoDB,因此我的代码如下所示:

namespace NLog.Mongo
{
    [Target("Mongo")]
    public sealed class MongoDBNLogTarget : Target
    {
        ...
        protected override void Write(NLog.LogEventInfo logEvent)
        {
            Repository.Insert(logEvent);
        }
    }
}

我想我的NLog.config文件应如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <extensions>
    <add assembly="NLog.Mongo"/>
  </extensions>
  <targets>
    <target name="mongo" xsi:type="Mongo"/>
  </targets>

  <rules>
    <logger name="*" minLevel="Info" writeTo="mongo" />
  </rules>
</nlog>

然而我收到警告:

This is an invalid xsi:type 'http://www.nlog-project.org/schemas/NLog.xsd:Mongo'

1 个答案:

答案 0 :(得分:4)

这是来自XSD的错误,应该被视为警告。 XSD是使用所有可能的目标生成的(在NLog主程序包中),因此没有自定义目标。

如果XML配置包含这些“错误”,则可以忽略这些错误并且NLog不会停止工作。