Xamarin Android – closures单声道日志

这可能是一个挑剔的事情,但在Xamarin运行Android应用程序时,它会在控制台中转储大量的行,以[Mono]

有什么办法可以禁用这些日志吗?

提前致谢

Solutions Collecting From Web of "Xamarin Android – closures单声道日志"

这可以通过改变设备上Monos执行环境的状态来完成; 这只是一组改变Monos行为的环境variables(比如垃圾回收,日志logging等)。 在这种情况下,为了改变日志logging行为,我们需要修改存储在环境variablesMONO_LOG_LEVELMONO_LOG_MASK

Xamarin.Android提供了2个开发者可以用来改变执行环境的机制:

  • 1.使用adb shell setprop debug.mono.env 。 这可以通过构build后的操作完成。
  • 2.使用环境构build文件来更改每个项目的执行环境状态。

我更喜欢使用方法2,因为编辑文本文件比更改构build操作更容易。 使用以下步骤执行此操作。

添加一个环境文件

将一个名为environment.txt的纯文本文件添加到Xamarin.Android项目的根path中。 在这里输入图像说明

右键单击environment.txt并将其构build操作设置为AndroidEnvironment

环境文件是由换行符分隔的一系列键=值对。 对于日志logging,我们可以设置以下variables:

MONO_LOG_LEVEL

  • debugging
  • 信息
  • 信息
  • 警告
  • 危急
  • 错误

MONO_LOG_MASK

  • ASM
  • DLL
  • CFG
  • 所有
  • types
  • GC

例如,我们可以通过错误地过滤MONO_LOG_LEVEL来忽略大多数消息:

environment.txt

 MONO_LOG_LEVEL=error 

背景阅读:

  • Android环境
  • 单声道 – logging运行时事件