Logs sao pequenas mensagens que voce deixa em seu codigo para poder analisar a execucao do programa e facilitar a tarefa de correcao de erros. Neste artigo explicarei como utilizar o Log4j para registrar logs no seu codigo.CenarioUm diz voce fez um sistema muito legal, que faz um monte de calculos complicados, atraves de uma seria de rotinas ou processos internos e de uma forma magica, faz aquilo que o cliente pediu. Voce instalou em producao e funcionou de primeira. Uma beleza.Seria perfeito, a nao ser pela ligacao do cliente no mes seguinte afirmando que o sistema esta fazendo o calculo errado. Voce e inteligente e sabe que fez o calculo certo, nao estamos discutindo isso, mas voce precisa convencer o seu cliente de que voce esta certo. Entao voce tem que ir ate o cliente, sentar do lado dele, puxar a forma de calculo la do bau de sua memoria, fazer todo o calculo junto com o usuario, explicar passo a passo, ate que ele entende que o sistema esta certo.Pronto, problema resolvido, mas bem que isso poderia ter sido evitado. Como? Logs........ E eu nao estou falando de System.out.println(), isso e coisa de amador.....O que e isso?Logs sao pequenos registros que voce adiciona dentro do seu codigo, informando alguns passos importantes de um grande processo ou calculo, para que posteriormente voce possa consultar e verificar o que seu programa esta fazendo.Legal!!!!! Nao entendi! Da para mostrar na pratica?Da sim, vamos la. Em primeiro lugar, voce precisara de uma API para te ajudar a fazer isso. Voce pode usar a API nativa do Java, ou entao uma API da Apache, o Log4j (meu favorito :-).Eu prefiro o Log4j pelos seguintes motivos:Facil de configurarFlexivel, com milhares de opcoesMuita documentacao disponivelAmplamente utilizado pela comunidade de Desenvolvedores JavaFunciona que e uma beleza :-DBom, em primeiro lugar voce tera que baixar a API do site e configurar ela no Eclipse, depois disso, voce precisara criar um arquivo de configuracao, onde voce podera informar o formato do log, o nivel de log (explico melhor depois) e aonde voce quer gravar o log.Um arquivo de configuracao basico poderia ser o seguinte (nesse exemplo os logs sao mostrados na console e tambem gravados em um arquivo):# Aqui configuramos o nivel de log e aonde queremos que os logs sejam gravados. A primeira palavra "debug", significa que queremos que apenas os logs do tipo debug em diante sejam gravados.log4j.rootLogger=debug, stdout, R# Aqui estanos definindo um appender que ira mostrar as mensagens de log na consolelog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayout# Aqui configuramos o formato do loglog4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n# Aqui configuramos outro appender, agora para um arquivolog4j.appender.R=org.apache.log4j.RollingFileAppender# Aqui definimos o nome do arquivolog4j.appender.R.File=example.log# Aqui definimos o tamanho maximo do arquivolog4j.appender.R.MaxFileSize=100KB# E aqui definimos o numero maximo de arquivos de log que queresmos que sejam gerados.log4j.appender.R.MaxBackupIndex=1# Definicao do formato do loglog4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=%p %t %c - %m%nDepois disso, voce pode gravar seus logs fazendo o seguinte:package src;import org.apache.log4j.Logger;import org.apache.log4j.PropertyConfigurator;public class Main {/** * Instancia do logger. Voce pode colocar uma linha como essa em todas as * suas classes que precisam gravar log. Tome cuidado para