尝试与咆哮集成时,打破NLog 3的变化

时间:2014-06-04 01:33:47

标签: c# nlog growl

我试图测试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主页建议NLog 3有时会很快发布(这是半年前写的)
  • 使用Nuget安装NLog将(偷偷摸摸)安装版本 3 ,而不是像几周前那样 2.1
  • 经过大量的试验和错误,似乎上面的教程不适用于NLog 3,我的假设是某些更改破坏了。

是否有人知道这些更改是否/可能是什么,以及是否应该预期其他意外功能?


经过一些挖掘和阅读后,这可能与NLog 3中他们放弃了对.Net2的支持以及那个Growl目标是.Net 2的事实有关吗?

1 个答案:

答案 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。因此,为了确认上述内容,请确保您定位该框架。