Este post objetiva compartilhar uma
dica simples para geração de logs, que permitiu aumentar a produtividade na
programação durante a realização desta atividade. Trata-se do uso do editor de
templates do Eclipse para geração de código automático (famoso Ctrl+space+template),
para personalização dos níveis de logs existentes da plataforma Android
Tenho hábito e prática de utilizar logs na programação. De forma simples, isso nada mais é do que prover uma saída de dados textual na tela do console para visualizar o fluxo atual em execução no programa. Assim, podemos de forma rápida comprovar nossas hipóteses que o algoritmo está se comportando exatamente como o imaginamos. J Isso não é lindo? Para termos certeza que tudo vai correr bem é necessário fazer esse tipo de processo de validação N vezes até que tenhamos certeza absoluta que vai funcionar.
Tenho hábito e prática de utilizar logs na programação. De forma simples, isso nada mais é do que prover uma saída de dados textual na tela do console para visualizar o fluxo atual em execução no programa. Assim, podemos de forma rápida comprovar nossas hipóteses que o algoritmo está se comportando exatamente como o imaginamos. J Isso não é lindo? Para termos certeza que tudo vai correr bem é necessário fazer esse tipo de processo de validação N vezes até que tenhamos certeza absoluta que vai funcionar.
Geralmente através de testes de
unidade, ou simplesmente para constatar se os comandos dados e as ordens
programadas (formalmente escritas na forma de código fonte) foram percorridos
como se esperava dentro do programa em execução, permitindo estruturar e
validar o percurso do algoritmo e da lógica de programação como um todo. Dependendo
da complexidade do software, podemos criar cenários não desejados – conhecidos como
bugs. Nem tudo é perfeito minha gente! J
Percebo também que eu não sou o
único que tem esse hábito de usar logs. Todos os programadores que conheço
fazem isso. Fazer logs é uma boa prática. No entanto, para fazê-lo precisamos
escrever uma linha de código utilizando a criatividade, que varia de programador
para programador. Se perder o controle e ficar criando log de tudo, pode poluir demasiadamente o código com comentários
inúteis ou não mais necessários. Normalmente se usa algo como isso:
System.out.println(“*Classe*.metodo() - comentário opcional”);
System.out.println(“TelaCadastroCliente.salvar()
– registrando dados ...”);
Na prática temos um exemplo
concreto sem padrão algum, apenas para ver o valor da variável na saída:
public class Teste {
static char caracter = 170;
public static void main(String[] args) {
System.out.println("valor = "+caracter);
System.out.println("valor (int) = "+(int)caracter);
}
}
Escrever a linha de comando
System.out.println usando o Eclipse se torna fácil quando conhecemos o nome que
chama o template para preenchimento automático. Por exemplo, se eu digitar “sysout + (Crtl+SPACE), o editor do
Eclipse irá substituir a palavra “sysout” pelo comando System.out.println(), e ainda deixar o cursor dentro dos
parênteses. Para quem não sabe você acabou de usar o template de código do
editor Eclipse para códigos da linguagem Java. Isso não é show de bola? Os
programadores sabem que isso torna o trabalho mais eficaz. Eu pelo menos me
sinto muito animado quando uso editores assim.
Criando templates para geração de LOG automático para uso no emulador
Android
O SDK do emulador Android oferece
a saída de dados usando a janela do LogCat
(Windows/Show View/Other/Android/LogCat), que fica disponível após instalar o
plugin ADT. Nesta janela podemos visualizar os logs de acordo com o seu nível.
Veja a tabela:
Nível
|
Sigla
|
Cor
|
Debug
|
D
|
azul
|
Verbose
|
V
|
preto
|
Info - Informação
|
I
|
verde
|
Warn - alerta
|
W
|
laranja
|
Error - erro
|
E
|
vermelho
|
Níveis de logs e suas cores
Assim, no Android temos que usar
a classe android.util.Log para escrever os logs de acordo com os níveis
disponíveis da tabela. Temos então no código:
Por exemplo, vamos criar o código
abaixo e sua tecla de atalho correspondente:
Exemplo
uso android.util.Log
|
Nome
do Atalho pretendido
|
Log.d("SUA_TAG", "log DEBUG");
|
dbg
|
Log.i("DOUGLAS", "log
INFORMATION");
|
dbgi
|
Log.e("DOUGLAS", "log ERROR");
|
dbge
|
Crie as tags acima no Eclipse usando uma tecla de atalho
Acesse a opção de preferências no
menu principal do Eclipse, no caso do sistema operacional ser o Windows, use o
atalho Windows/Preferences/. Na
figura abaixo (A), observe o campo para digitar a busca. Digite o termo “templates”
para filtrar a quantidade de opções disponíveis. Veja a imagem (B). Acesse
opção Java/Editor/Templates/
(A) |
(B) |
Agora basta inserir novas
entradas clicando no botão “New...”. (B) Crie 3 ou mais entradas de acordo com o
código abaixo. Veja também a imagem (C).
(C) |
Name
|
Description
|
Pattern
|
dbg
|
Log.DEBUG level (default)
|
Log.d("DOUGLAS","${enclosing_type}.${enclosing_method}${cursor}");
|
dbgi
|
Log.INFORMATION level
|
Log.i("DOUGLAS","${enclosing_type}.${enclosing_method}${cursor}");
|
dbge
|
Log.ERROR level
|
Log.e("DOUGLAS","${enclosing_type}.${enclosing_method}${cursor}");
|
…
|
…
|
…
|
Esse código é uma linguagem de
expressão do Eclipse e faz com que o nome da classe atual seja obtida ( ${enclosing_type}
), e o nome do método atual seja obtido e substituído (${enclosing_method} ), e
por fim, sete o cursor para o final deste comentário ( ${cursor} ). Se desejar poderá criar outros templates estudando
essa linguagem de expressão do Eclipse.
Após criar seus templates poderá
utilizá-los durante a codificação do seu aplicativo no Android, e usar
as teclas de atalho criadas. Ex. digite dbg + (Crtl+Space) e poderá ver
as opções disponíveis do template. Assim que escolher um, o código será gerado
automaticamente obtendo o nome da classe, o nome do método e você poderá ainda
testar seu código neste trecho sem a necessidade de digitar todo o código.
Espero que essa dica seja útil
para você tanto quanto está sendo para mim. J
Um comentário:
Boa dica, eu, mesmo sendo um desenvolvedor experiente, não usava este atalho que agora, vou passar a usar!
Postar um comentário