我试图测试NLog&的整合Growl根据this article。
这是NLog配置文件:
<?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">
<!-- This is for Growl -->
<extensions>
<add assembly="NLog.Targets.GrowlNotify" />
</extensions>
<targets>
<!-- This is for testing , output to console -->
<target xsi:type="ColoredConsole"
name="console"
layout="${shortdate} ${level} ${message}" />
<!-- This is for Growl -->
<target name="growl" xsi:type="GrowlNotify"
password="" host="" port="" />
</targets>
<rules>
<!-- This is for testing , output to console -->
<logger name="*"
minlevel="Trace"
writeTo="console" />
<!-- This is for Growl -->
<logger name="*"
minlevel="Trace"
writeTo="growl"/>
</rules>
</nlog>
结果是:没有记录任何内容(不会咆哮,也不会记录到控制台)。
删除咆哮目标和规则,它会愉快地记录到控制台(以及我拥有的其他目标)。
短篇小说:
是否有人知道这些更改是否/可能是什么,以及是否应该预期其他意外功能?
经过一些挖掘和阅读后,这可能与NLog 3中他们放弃了对.Net2的支持以及那个Growl目标是.Net 2的事实有关吗?
答案 0 :(得分:3)
我检查了NLogGrowlNotify的代码并使用多个版本的NLog运行目标。似乎即使NLog 2.1.0也无法实现此目标。 问题在于,在NLogGrowlNotify目标的默认配置中,未设置端口。目标代码默认为端口23053.
因此,要使NLogGrowlNotify目标与版本2.1.0和版本3.0的NLog一起使用,只需在目标配置中指定端口即可。像这样:
&lt; target name =&#34; growl&#34;的xsi:type =&#34; GrowlNotify&#34;密码=&#34;&#34;主机=&#34;&#34;端口=&#34; 23053&#34; /&GT;
它适用于NLogGrowlNotify解决方案中的演示应用程序。
更新的 NLog 3.0依赖于(至少).Net v3.5。因此,为了确认上述内容,请确保您定位该框架。