13

開発に Samsung Galaxy S3 デバイスを使用しており、アプリでカメラを使用しています。Camera-JNIlogcat には、 1 秒あたり 20 回のように logcat に書き込まれるタグを使用してネイティブ システムによって作成された出力があり、 logcat は最も古いエントリを非常に高速に消去します。

これを防ぐために、既にインストールされているアプリやシステム ログのログを無効にすることはできますか? logcat がまだいっぱいで、行がまだクリアされているため、フィルターは機能しません。

ありがとうございました。

編集

ドキュメントには次のように書かれています。

システム プロパティを設定することで、デフォルト レベルを変更できますsetprop log.tag.<YOUR_LOG_TAG> <LEVEL>local.prop以下を含むファイルを 作成して、 にlog.tag.<YOUR_LOG_TAG>=<LEVEL>配置することもできます/data/local.prop

編集2

私はすでにこれを行っていますが(デバイスをルート化し、local.propファイルを/ dataにプッシュして再起動しています)、タグはまだ表示されています

4

3 に答える 3

7

Android ソース コード (2.3.x) を調べると、次のことがわかります。

実行中

shell setprop log.tag.XYZ

ここでは機能しません ( )。ログはマクロframeworks/base/core/jni/android_hardware_Camera.cppを使用して行われているためです。LOGV()このロギング方法では、プロパティを使用して、一部のコンポーネントがロギングを無効にしたいかどうかを検出しません。これは、Android コードを介して呼び出しを追跡できる限りです。

そのsetprop(...)ため、Android システム コンポーネントからのロギングを無効にするために使用しても機能しませんが、Java で記述されたログを使用base/core/java/android/util/Log.javaframeworks/base/core/jni/android_util_Log.cppてログを記録するユーザー アプリなどからログが取得された場合には機能するはずです。私の推測では、それandroid_util_Log_isLoggable()がフィルタリングに使用されているものです。

IMHO デバイスのソースからビルドし、LOGV使用しているカメラ コードのマクロを無効にする以外に方法はありません。

于 2012-07-24T12:48:10.930 に答える
1

のようなものを試すことができますadb shell setprop log.tag.Camera-JNI ERROR。うまくいかない場合は、単にログをフィルタリングするか、ファイルにダンプし、grep を使用して関心のある行を見つけるか、カメラをフィルタリングして除外しますgrep -v Camera-JNI

于 2012-07-24T03:05:12.597 に答える
0

特定のタグを表示したい場合は、次を使用します。

logcat -s YourTag:* SecondTag:* ThirdTag:* ...

使用することもできますadb logcat

<TAG>:*必要なタグをフィルタリングする回数を指定するだけです。

例: adb logcat -s AndroidRuntime:* MyApp:*フィルターAndroidRuntimeMyAppタグ。したがって、キャッチされていないすべての例外 (クラッシュ) と、アプリケーションのすべてのログが表示されます。

于 2015-11-21T12:30:34.100 に答える