gpt4 book ai didi

c# - Mvvmcross 中是否有任何错误记录框架?

转载 作者:行者123 更新时间:2023-11-30 14:30:24 24 4
gpt4 key购买 nike

我正在使用 Mvvmcross 构建跨平台应用程序。我想知道 Mvvmcross 库中是否已经存在任何内置错误记录框架。

我正在寻找将所有错误记录到应用程序数据文件中的东西。我可以简单地在 Windows 应用商店应用程序中构建自己的应用程序,但是我如何记录核心库中出现的错误,因为我无法访问那里的应用程序数据文件夹?

我看到了一个 Mvx.Error() 方法。它的目的是什么?

最佳答案

I saw one Mvx.Error() method. What is the purpose of it ?

Mvx.Trace()Mvx.Warning()Mvx.Error() 都提供简单的 API 来记录信息。

日志输出本身会转到在 Setup 期间注册的单例。您可以轻松实现自己的实现:

public class DebugTrace : 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);
}
}
}

这可以很容易地在 Setup 期间注册:

public class Setup : MvxAndroidSetup
{
public Setup(Context applicationContext) : base(applicationContext)
{
}

protected override IMvxApplication CreateApp()
{
return new Core.App();
}

protected override IMvxTrace CreateDebugTrace()
{
return new DebugTrace();
}
}

在应用程序中,我通常在 Core 类中使用一个或多个独特的 tag 实现我自己的特定于应用程序的日志记录——这允许我在标签上进行过滤——例如我可能有这样的东西:

public static class MyApp
{
public static void NetTrace(string message, params object[] args)
{
Mvx.TaggedTrace("MyAppNet", message, args);
}

public static void NetError(string message, params object[] args)
{
Mvx.TaggedError("MyAppNet", message, args);
}

public static void VmTrace(string message, params object[] args)
{
Mvx.TaggedTrace("MyAppVm", message, args);
}

public static void VmError(string message, params object[] args)
{
Mvx.TaggedError("MyAppVm", message, args);
}
}

为了在调试器之外进行日志记录,周围有几个库 - 例如像 NLog 这样的东西——你可以很容易地连接到 MvxTrace

关于c# - Mvvmcross 中是否有任何错误记录框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22853894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com