Comportamento um pouco estranho do Log
Eu escrevi uma atividade do Android muito simples:
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();
}
}
Eu esperaria que isso gerasse 6 mensagens de log (3 deonCreate()
3 deonDestroy()
). Aqui está o logcat:
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
Como pode ser visto, as linhas com a tag "SMS" não passam. Isto não é, tanto quanto eu posso dizer uma coisa documentada. A questão é, por quê?
EDIT: mais detalhes sobre a resposta.
Uma resposta bastante boa é dada abaixo por Matthew Burke. Em suma, com base no código-fonte paralogd_write.c
, parece que:
Log
solicitações com as seguintes tags são redirecionadas automaticamente para oradio
registro:HTC_RIL
tags começando comRIL
AT
GSM
STK
CDMA
PHONE
SMS
NãoLog
as solicitações são redirecionadas para oevents
log (ou osystem
log, veja tambémhttp://elinux.org/Android_Logging_System)Todos os outrosLog
pedidos vão para omain
log, aquele que geralmente é monitorado.