1

Silverlight プロジェクトがあり、静的メソッドを呼び出すために NLog を構成しようとしていますが、構成されていません (Nlog.config を使用)。私はこの例に従っています。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);
        }
    }
}

PS プログラムによる構成はうまく機能します。

4

1 に答える 1

3

そのため、 classNameパラメータの処理中にNLog.Targets.MethodCallTarget.InitializeTarget () メソッドで例外がスローされることが判明しました。

私たちが変われば

className="NLogTestSilver.MainPage, NLogTestSilver"

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

それはうまくいきます。

xxxxxxxxxxxxxxxxはアセンブリの公開鍵トークンです。

于 2013-06-11T15:39:35.913 に答える