使用Prism的DebugLogger

时间:2016-06-20 07:52:57

标签: c# xamarin xamarin.forms prism xamarin-studio

我现在正试图在Xamarin.Forms上使用Log Prism6.1.0-pre5的Prism.Logging.DebugLogger方法来记录我的应用程序。 但它没有输出任何东西。

DebugLogger已在this中实施。 但在汇编浏览器中,行Debug.WriteLine(messageToLog);不会显示如下: this

这与这个问题有关吗?我该如何正确使用它?

1 个答案:

答案 0 :(得分:0)

它没有输出任何内容,因为正如您在反编译器中看到的那样(Xamarin Studio的汇编浏览器实际上反编译.NET代码),Log实现没有做太多,它只调用{{1} }。

你最有可能使用的是Prism.dll的发布版本,可能是由NuGet获得的,所以当编译Prism.dll以便作者分发给NuGet时,string.Format被编译器剥离了。 p>

另一件事:Xamarin Forms Debug.WriteLine创建的默认记录器是PrismApplicationBase。 导航到页面时发生错误(例如我在XAML中有错误),DebugLogger中的实现调用默认记录器写入错误然后抛出错误:

https://github.com/PrismLibrary/Prism/blob/master/Source/Xamarin/Prism.Forms/Navigation/PageNavigationService.cs#L374

由于上述原因未写入默认记录器错误,但即使PageNavigationService引发错误,“输出”窗口中也不会显示任何内容,并且应用程序也不会崩溃。