2014-11-21 58 views
3

我想用这个来编写自定义的目标NLOG: https://github.com/nlog/nlog/wiki/How%20to%20write%20a%20TargetNLOG XSI:类型不与自定义的目标工作

,写我的日志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' 

回答

3

这是来自XSD的错误,应该将其视为警告。 XSD由所有可能的目标(在NLog主包中)生成,因此不具有自定义目标。

这些类型的错误可能会被忽略,如果XML配置包含这些“错误”,NLog将不会停止工作。