4

不自由で簡単な質問で申し訳ありませんが、答えが見つかりませんでした。System.Diagnostics.Debug.WriteLine に何かを出力するたびに、メッセージが 3 倍になります。

System.Diagnostics.Debug.WriteLine("test");

出力:

[0:]
test
[0:] test 
10-22 19:57:13.981 I/mono-stdout( 1026): test 

UI部分(モノドロイド)とビジネスロジック(PCL)の両方からメッセージを書くので、私はSystem.Diagnostic.Debugに固執しています

Xamarin.Android のデバッグ ノイズのレベルを下げる方法はありますか?

ご提案ありがとうございます。

4

2 に答える 2

5

独自の小さな抽象化を作成します。私たちのプロジェクトにも同じ問題があります。この小さなインターフェイスが役立ちます。

public interface ILogger
{
    void Write(LogLevel level, String tag, String message);
}

次に、プラットフォームごとにロガーを用意します。次に例を示します。

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

iOS/Android プロジェクトにロガーを挿入すると、たとえば iOS 用の優れたファイル ロガーのような派手なロガーを作成することもできます。

#if DEBUG
LOG.AddLogger(new TouchFileLogger());
LOG.AddLogger(new ConsoleLogger());
#endif

LOG クラスは静的であり、実装について知る必要がないため、共有 PCL ライブラリで簡単に使用できます。

あなたの問題は今までに解決されるかもしれませんが、それが役立つことを願っています;-)

于 2014-07-02T09:28:51.270 に答える
2

代わりに使用できますAndroid.Util.Log。これにより、大幅に減少します。また、logcat でフィルタリングできるさまざまなレベルのロギングもあります。

  • 情報:Log.Info()
  • デバッグ:Log.Debug()
  • 警告:Log.Warn()
  • エラー:Log.Error()
  • 詳細:Log.Verbose()

さらにWriteLine、上記のすべてを行う :

Log.WriteLine()
于 2013-10-22T20:13:42.657 に答える