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

我想在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'

解决方法:

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

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

上一篇:CorelDRAW 2017提示已安装另一版本导致安装失败的解决办法


下一篇:c# – 在运行时使NLog配置文件用户定义