1. ホーム
  2. android

[解決済み] Android - logcat メッセージの最大長を設定する

2022-05-18 07:17:11

質問

デフォルトでは、logcat は長すぎると思われるログメッセージを切り詰めます。 これは、Eclipse 内と、コマンド ラインで adb -d logcat を使用してコマンド ラインから logcat を実行した場合の両方で発生し、いくつかの重要なデバッグ メッセージが切り捨てられます。

logcat がサポートする最大文字列長を増やして、デバッグ情報の切り捨てを止めさせる方法はありますか。 その場合 公式ドキュメント は、それがないことを示唆していますが、多分 logcat は、そこに言及されていないいくつかの追加のオプションをサポートしていますか?

どのように解決するのですか?

logcat のバイナリログには、固定サイズのバッファがあります ( /dev/log/events ) のために固定サイズのバッファがあり、この制限は 1024 バイトです。 バイナリ以外のログにも制限があります。

#define LOGGER_ENTRY_MAX_LEN        (4*1024)
#define LOGGER_ENTRY_MAX_PAYLOAD (LOGGER_ENTRY_MAX_LEN - sizeof(struct logger_entry))

ですから、バイナリログと非バイナリログの両方に対する実際のメッセージサイズは、~4076バイトになります。 カーネルのロガーインターフェイスは、この LOGGER_ENTRY_MAX_PAYLOAD 制限を課しています。

liblogのソース(logcatが使用)にも書いてあります。

  • メッセージはカーネルのログドライバによって切り捨てられた可能性があります。

私はあなたに nxlog ツールをお勧めしますが、カーネルの制限のため、これで問題が解決するかどうかは疑問です。とはいえ、試してみる価値はあるかもしれません。(免責事項: 私が作者です)。