非常に単純な Android アクティビティを作成しました。
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("TAG", "onCreate() Log call 1");
Log.d("SMS", "onCreate() Log call 2");
Log.d("TEST", "onCreate() Log call 3");
finish();
}
@Override
protected void onDestroy() {
Log.d("TAG", "onDestroy() Log call 1");
Log.d("SMS", "onDestroy() Log call 2");
Log.d("TEST", "onDestroy() Log call 3");
super.onDestroy();
}
}
onCreate()
これにより、6 つのログ メッセージ ( から 3 つ、 から3 つ)が生成されると予想されますonDestroy()
。ログキャットは次のとおりです。
04-14 17:31:58.363: D/TAG(18084): onCreate() Log call 1
04-14 17:31:58.363: D/TEST(18084): onCreate() Log call 3
04-14 17:31:59.905: D/TAG(18084): onDestroy() Log call 1
04-14 17:31:59.905: D/TEST(18084): onDestroy() Log call 3
ご覧のとおり、「SMS」というタグの付いた回線は通過しません。文書化されたものを伝えることができる限り、これはそうではありません。問題は、なぜですか?
編集:答えの詳細。
以下のマシュー・バークによるかなり良い答えがあります。要するに、 のソース コードに基づいて、次のlogd_write.c
ように思われます。
Log
radio
次のタグを持つリクエストは、自動的にログ にリダイレクトされます。HTC_RIL
- で始まるタグ
RIL
AT
GSM
STK
CDMA
PHONE
SMS
- ログ (またはログ、 http://elinux.org/Android_Logging_Systemも参照)
Log
にリダイレクトされるリクエストはありません。events
system
- 他のすべての
Log
要求main
は、通常監視されるログに送られます。