我想在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不会停止工作.