NLog MethodCall

时间:2013-06-06 13:36:32

标签: silverlight nlog method-call

我有一个silverlight项目,我正在尝试配置NLog来调用静态方法,但它没有(使用Nlog.config)。 我正在关注this example。 这是Nlog.config代码:

...
    <targets>
        <target name="m" xsi:type="MethodCall" 
                         className="NLogTestSilver.MainPage, NLogTestSilver"
                         methodName="LogMethod">
            <parameter layout="${level}" />
            <parameter layout="${message}" />
        </target>
    </targets>

    <rules>
        <logger name="*" minlevel="Debug" writeTo="m" />
    </rules>
...

程序集名称= NLogTestSilver.dll

这是MainPage.xaml.cs代码:

namespace NLogTestSilver
{
    public partial class MainPage : UserControl
    {
        public static Logger Logger = LogManager.GetCurrentClassLogger();
        public MainPage()
        {
            InitializeComponent();
            Logger.Fatal("Fatality");
        }
        public static void LogMethod(string level, string message)
        {
            System.Windows.Browser.HtmlPage.Window.Alert(level + " " + message);
        }
    }
}

P.S。程序化配置效果很好。

1 个答案:

答案 0 :(得分:3)

因此,在处理 className 参数时,发现在 NLog.Targets.MethodCallTarget.InitializeTarget ()方法中抛出异常。

如果我们改变

className="NLogTestSilver.MainPage, NLogTestSilver"

className="NLogTestSilver.MainPage, NLogTestSilver, 
           Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxxx"

效果很好。

其中 xxxxxxxxxxxxxxxx 是我们汇编的公钥令牌。