我正在使用MvvmCross。 在庫中我看到使用Mvx.Trace方法,但沒有輸出到控制檯/輸出窗口。 如何使用它?MvvmCross Mvx.Trace用法
p.s.我已經設置了編譯器常量Trace = true
謝謝。
我正在使用MvvmCross。 在庫中我看到使用Mvx.Trace方法,但沒有輸出到控制檯/輸出窗口。 如何使用它?MvvmCross Mvx.Trace用法
p.s.我已經設置了編譯器常量Trace = true
謝謝。
MvvmCross debugTrace的是通過一個單獨的實施IMvxTrace
所有路由每個平臺提供的這種不同的實現:
Debug
跟蹤(因爲Trace
本身並不適用於所有在Windows平臺)Debug
和Android的雙重日誌log
Debug
和iOS版的Console
這在早期版本的MvvmCross的,尤其是當人們直接鏈接到MvvmCross源代碼,所以可以直接綁定到任何調試或釋放MvvmCross運作良好二進制文件。
但是......因爲人們現在越來越多地使用Nuget的發行版二進制文件 - 其中Debug
當然是編譯出來的,那麼這經常會讓人們問「如何使用它?」
最簡單的方法是在Setup
類中覆蓋IMvxTrace的初始化。
這是很容易做到 - 例如爲:
protected override IMvxTrace CreateDebugTrace() { return new MyDebugTrace(); }
其中MyDebugTrace
是一樣的東西:
public class MyDebugTrace : IMvxTrace
{
public void Trace(MvxTraceLevel level, string tag, Func<string> message)
{
Debug.WriteLine(tag + ":" + level + ":" + message());
}
public void Trace(MvxTraceLevel level, string tag, string message)
{
Debug.WriteLine(tag + ":" + level + ":" + message);
}
public void Trace(MvxTraceLevel level, string tag, string message, params object[] args)
{
try
{
Debug.WriteLine(string.Format(tag + ":" + level + ":" + message, args));
}
catch (FormatException)
{
Trace(MvxTraceLevel.Error, tag, "Exception during trace of {0} {1} {2}", level, message);
}
}
}
如果你想包括調試/釋放不同的實現;如果你想在運行時打開/關閉這個功能;如果您想過濾MvxTraceLevel
或tag
;或者如果你想使用一些第三方日誌記錄引擎,那麼在每個平臺上使用簡單的C#應該也很容易。
只需用Stuart提供的當前解決方案解決iOS問題。
使用Debug.WriteLine
在VS中使用MvxTrace運行調試會話可能會非常緩慢,具體取決於應用程序日誌記錄的詳細程度。 Trace.WriteLinte
。 改爲使用Console.WriteLine
(如MvvmCross MvxDebugTrace
一樣),這不會影響。
參見「更多」細節此Xamarin錯誤項:從斯圖爾特快速,詳細的解答:https://bugzilla.xamarin.com/show_bug.cgi?id=13538#c4
像往常一樣。謝謝! –
Xamarin Android:而不是看標準的VS輸出窗口 轉到查看\其他Windows \ Android設備日誌記錄。 您可以通過mvx進行過濾,以僅查看您的應用跟蹤。 http://docs.xamarin。COM /引導/安卓/部署,_testing,_and_metrics/android_debug_log –