我们在应用程序中使用NLog。
从本周开始,我们看看Seq(getseq.net),我们喜欢它。问题在于搜索很难,因为我们必须查询
@0=="someinfo"
所以我们看看Serilog,我们可以在这里找到像
这样的结构化名称var data = new string.Format("Element name {name}", otherElement.name);
而不是
var data = new string.Format("Element name {0}", otherElement.name);
我看了https://github.com/NLog/NLog/wiki/EventContext-Layout-Renderer,看起来我们可以像Serilog那样做,但我无法让它发挥作用......
App.config看起来像:
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<extensions>
<add assembly="Seq.Client.NLog" />
</extensions>
<targets>
<target name="seq" xsi:type="Seq" serverUrl="http://localhost:5341/">
<property name="MyValue" value="${event-context:item=MyValue}"/>
</target>
<rules>
<logger name="other" minlevel="Trace" writeTo="seq" />
</rules>
</nlog>
C#代码:
LogEventInfo theEvent = new LogEventInfo(NLog.LogLevel.Debug, "", "Pass my custom value");
theEvent.Properties["MyValue"] = "My custom string";
_myLog.Debug(theEvent);
问题是属性“MyValue”从未在我的Seq中设置......
我看Nlog ${event-context:item=xxxx} not writing in logging database,但无法让它对我有用。
谢谢