在Xamarin.Android + Visual Studio上降低调试输出级别

Ale*_*akh 4 android visual-studio-debugging xamarin.android xamarin

很抱歉提出一个me脚的问题,但我没有找到答案。每次我将一些内容打印到System.Diagnostics.Debug.WriteLine时,我的信息都会增加三倍:

System.Diagnostics.Debug.WriteLine("test");
Run Code Online (Sandbox Code Playgroud)

输出:

[0:]
test
[0:] test 
10-22 19:57:13.981 I/mono-stdout( 1026): test 
Run Code Online (Sandbox Code Playgroud)

我坚持使用System.Diagnostic.Debug,因为我同时编写了来自UI部分(单色)和业务逻辑(PCL)的消息

有什么办法可以降低Xamarin.Android的调试噪音水平?

感谢您的任何建议。

u_b*_*u_b 5

制作自己的小抽象。我们的项目中存在相同的问题,这个小界面有助于:

public interface ILogger
{
    void Write(LogLevel level, String tag, String message);
}
Run Code Online (Sandbox Code Playgroud)

然后,您将获得每个平台的记录器,例如:

public class AndroidLogger: ILogger
{
    public void Write(LogLevel level, string tag, string message)
    {
        Android.Util.Log.WriteLine(ConvertLogLevel(level), tag, message);
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以将记录器注入iOS / Android项目中,甚至可以创建精美的记录器,例如用于iOS的漂亮文件记录器:

#if DEBUG
LOG.AddLogger(new TouchFileLogger());
LOG.AddLogger(new ConsoleLogger());
#endif
Run Code Online (Sandbox Code Playgroud)

LOG类是静态的,不需要了解实现,这就是为什么可以在共享的PCL库中轻松使用它的原因。

希望有帮助,尽管您的问题现在可能已经解决了;-)