2016-08-15 78 views
2

我一直试图使用NLog.Mongo和NLog.MongoDB将日志写入Mongo数据库。但是,我不断收到一条错误消息:“这是一个无效的xsi:type'http://www.nlog-project.org/schemas/NLog.xsd:MongoDB”。我使用的代码如下:使用NLog将日志存储在Mongo数据库中

<?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" 
    xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd" 
    autoReload="true" 
    throwExceptions="false" 
    internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log"> 

    <extensions> 
    <add assembly="NLog.MongoDB"/> 
    </extensions> 

    <targets> 
    <target xsi:type="MongoDB" name="mongo" database="NLog"> 
     <field name="timestamp" layout="${date}"/> 
     <field name="level" layout="${level}"/> 
     <field name="message" layout="${message}"/> 
    </target> 
    </targets> 

    <rules> 
    <logger name="*" minlevel="Trace" writeTo="mongo"/> 
    </rules> 
</nlog> 

我要么寻找解决这个错误或其他方式可以执行。我已经找遍我能想到的只有发现没有答案的问题,如:

NLog xsi:type not working with custom target

Nlog with MongoDB connection and target

回答

2

,来了只指定它不是NLOG的认可类型的错误。该扩展实际上工作,事实证明上面的代码的问题是由于没有指定connectionString。

我有固定的使用问题:

<?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" 
    xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd" 
    autoReload="true" 
    throwExceptions="false" 
    internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log"> 

    <extensions> 
    <add assembly="NLog.Mongo"/> 
    </extensions> 

    <targets> 
    <target xsi:type="Mongo" name="mongo" databaseName="NLog" collectionName="Test" connectionString="mongodb://localhost/NLog"/> 
    </targets> 

    <rules> 
    <logger name="*" minlevel="Trace" writeTo="mongo"/> 
    </rules> 
</nlog> 
+0

注意'的databaseName = “NLOG”','集合名= “测试”'和'/ NLOG /'的connectionString的都是可选的。如果排除默认值将被使用。 (NLog将用作数据库名称,日志将用作集合名称)。必要的部分只是'connectionString =“mongodb:// localhost”' – Roars

+0

请将此标记为anwer – Julian

+0

会这样做。 (说明天之前我不能这样做) – Roars

相关问题