web-dev-qa-db-ja.com

Xamarin Android-Monoログをオフにする

これは非常に難しいかもしれませんが、XamarinではAndroidアプリを実行すると、コンソールに[Mono]で始まる大量の行がダンプされます

これらのログを無効にする方法はありますか?

前もって感謝します

34
julianwyz

これは、デバイスの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をフィルタリングすると、ほとんどのメッセージを無視できます。

environment.txt

MONO_LOG_LEVEL=error

背景を読む:

60
matthewrdev

私がすることは以下です。ウィンドウは非表示のものも含めて1万個のログを保持しているので、まだ不完全です。また、ウィンドウからコピーできないようです。

1)すべてのログに「AAA」のタグを使用します。
2)[ツール]> [Android]> [デバイスログ]で出力を表示します
3)タグでアルファベット順にソートします。
4)私の下のアウトプットはまだ気が散っています。タグの「フィルター」をクリックして、自分以外のチェックをすべて外すことができます。不愉快なことに、新しいタグはデフォルトではフィルタリングされないため、このステップを定期的に繰り返す必要があります。

enter image description here

1