詳細検索

Classes que exibem nomes de classe, nomes de métodos e números de linha em tags Android LogCat

Avatar
por furuyamah
2 min de leitura
Tags

Classes que exibem nomes de classe, nomes de métodos e números de linha em tags Android LogCat
Traduzido do 日本語 • Ver original

Mesmo que você tenha um debackerator e consiga executar etapas, não pode abrir mão da facilidade de deslogar. No caso do Android, você pode alcançar esse objetivo usando uma classe log padrão, mas muitas pessoas ficariam felizes se a Tag tivesse o nome da classe, o nome do método e o número da linha!

Quando pensei nisso, havia uma pessoa que percebeu isso.

[

Como exibir "Nome da Classe.Nome do Método: Número da Linha" na tag LogCat no Android?

](http://kinsentansa.blogspot.jp/2012/06/androidlogcattag.html)

Por algum motivo, tentei classificar isso para que pudesse ser usado.

[code lang="java" light="true"] pacote jp.fuga.hoge.android.app;

importar java.util.regex.Pattern; importar jp.fuga.hoge.android.app.BuildConfig; importar android.util.Log;

/** * classe de saída logarítmica.
* Sempre use essa classe ao produzir logs.
* No momento do lançamento, o desbacklog não é impresso. * */ classe pública L {

/** 
 * Gera um log para depuração. Não é gerado durante a versão de produção. 
 *  
 * Mensagem para saída @param msg
 */ 
empty estático público d(String msg) { 
    se (! BuildConfig.DEBUG) retornam; 
    Log.d(getTag(), msg); 
}

/** 
 * Produza um registro de erros. <br> 
 * Usado para gerar logs durante uma captura ou com comportamento inesperado. <br> 
 * Este log é assumido como resultado para analisar erros que ocorrem durante a versão de produção. 
 *  
 * Mensagem para saída @param msg
 */ 
empty estático público e(String msg) { 
    Log.e(getTag(), msg); 
}

/** 
 * Ibid.
 *  
 * @param msg
 * @param t
 */ 
empty estático público e(String msg, Throwable t) { 
    Log.e(getTag(), msg, t); 
}

/** 
 * Gerar tags
 *  
 * @return classNome#métodoNome:linha
 */ 
private static String getTag() { 

    trace final StackTraceElement = Thread.currentThread().getStackTrace()[4]; 
    final String cla = trace.getClassName(); 
    Padrão = Pattern.compile("[\\.] +"); 
    final String[] splitedStr = pattern.split(cla); 
    final String simpleClass = splitedStr[splitedStr.length - 1]; 

    string final mthd = trace.getMethodName(); 
    linha int final = trace.getLineNumber(); 
    tag final string = simpleClass + "#" + mthd + ":" + linha; 

    tag de retorno; 
}

}

[/código]

O ponto é que o BuildConfig controla que o debacklog não seja gerado quando a versão de lançamento é feita.

Veja como usá-lo

[code lang="java" light="true"] L.d("Debacklog"); [/code]

Tenha uma boa vida de debug.

Related Articles