Xamarin Android - 关闭 Mono 日志

问题描述 投票:0回答:3

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

[Mono]

开头的行

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

提前致谢

android logging mono console xamarin
3个回答
79
投票

这可以通过改变设备上Monos执行环境的状态来完成;它只是一组改变 Monos 行为的环境变量(无论是垃圾收集、日志记录等)。在这种情况下,要更改日志记录行为,我们需要修改存储在环境变量

MONO_LOG_LEVEL
MONO_LOG_MASK
中的值。

Xamarin.Android 提供了 2 种开发人员可以用来更改执行环境的机制:

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

我更喜欢使用方法 2,因为编辑文本文件比更改构建操作更容易。请按照下面列出的步骤执行此操作。

添加环境文件

将名为

environment.txt
的纯文本文件添加到 Xamarin.Android 项目的根路径。 enter image description here

右键单击

environment.txt
并将其构建操作设置为
AndroidEnvironment

环境文件是一系列由换行符分隔的 key=value 对。对于日志记录,我们可以设置以下变量:

MONO_LOG_LEVEL

  • 调试
  • 信息
  • 留言
  • 警告
  • 关键
  • 错误

MONO_LOG_MASK

  • asm
  • dll
  • cfg
  • 全部
  • 类型
  • GC

例如,我们可以通过错误过滤

MONO_LOG_LEVEL
来忽略大多数消息:

环境.txt

MONO_LOG_LEVEL=error

背景阅读:


2
投票

我所做的如下。它仍然不完美,因为窗口容纳了 10k 个原木,包括隐藏的原木,所以我的最终消失了。另外,我似乎无法从窗口复制。

1)对我的所有日志使用“AAA”标签。
2) 在工具>Android>设备日志中查看输出
3) 按标签字母顺序排序。
4)我发现我下面的输出仍然令人分心。我可以单击标签的“过滤器”并取消选中除我的之外的所有内容。令人烦恼的是,我必须定期重复此步骤,因为默认情况下不会过滤新标签。

enter image description here


0
投票

我在 .NET MAUI 中遇到了这个问题。使用

environemnt.txt
的解决方案不起作用。 我可以使用命令更改日志:

adb shell setprop debug.mono.log default,mono_log_level=error,mono_log_mask=gc
© www.soinside.com 2019 - 2024. All rights reserved.