我有一个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);
}
}
}附注:程序化配置运行良好。
发布于 2013-06-11 23:39:36
所以发现在处理className参数时,NLog.Targets.MethodCallTarget.InitializeTarget()方法抛出了异常。
如果我们改变
className="NLogTestSilver.MainPage, NLogTestSilver"
至
className="NLogTestSilver.MainPage, NLogTestSilver,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxxx"它工作得很好。
其中xxxxxxxxxxxxxxxx是我们的程序集的公钥标记。
https://stackoverflow.com/questions/16963571
复制相似问题