Gerando logs em Java

Nesse artigo, mostrarei a importância de gerar logs dentro de um sistema e como isso facilita a manutenção do código.

[ Hits: 21.022 ]

Por: Clauber Cesario em 07/07/2014


Classe main / Classe conexão com MySQL



Classe main

Vou mostrar um exemplo de como usar log, fazendo uma conexão com banco de dados MySQL.

Para começar, vou criar três classes:
  • Conexao.class Responsável por fazer a conexão com o banco de dados;
  • geraLogs.class Classe genérica que ficará responsável por gerar nossos logs;
  • main Classe principal que ficará responsável por executar nosso exemplo.

Na classe main, ficará assim:

public class main
{
    public static void main(String[] args)
    {
        Conexao conexao = new Conexao();

    }
}

Simplesmente, ficará responsável por instância nossa classe Conexao, para iniciar a conexão com o banco de dados.

Vamos para a próxima classe, Conexão.

Classe conexão com MySQL

Como havia dito na página anterior, eu irei realizar um exemplo de uma conexão com banco de dados e farei com que dê errado propositadamente a conexão, para poder gerar os logs com a outra classe.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class Conexao
{
    String conexao;
    boolean conectado;
    geraLog log;

    public Conexao()
    {
        criaConexao();
    }

    /**
     *Metodo responsavel por criação da conexao com banco de dados
     * @return retorna um boolean se for conectado
     *
/
    private boolean criaConexao()
    {
        log = new geraLog();
        String usuario = "klone";
        String senha = "senha";
        String local = "localhost";
        String database = "Agenda";
        String url = "jdbc:mysql://"+local+ "/" + database;

        Connection conexao;

        //Força o uso do try / catch
        try
        {
            String driver = "com.mysql.jdbc.Drivers";
            Class.forName(driver).newInstance();
            conexao = DriverManager.getConnection(url,usuario,senha);
            conectado = true;
            System.out.println("Conectado");
        }
        catch (SQLException erro)
        {
            log.LogTxt(erro.toString(), "Conexao");
            erro.printStackTrace();
            conectado = false;
        }
        catch (ClassNotFoundException e)
        {
            log.LogTxt(e.toString(), "Conexao");
            e.printStackTrace();
            conectado = false;
        }
        catch (InstantiationException e)
        {
            log.LogTxt(e.toString(), "Conexao");
            e.printStackTrace();
            conectado = false;
        }
        catch (IllegalAccessException e)
        {
            log.LogTxt(e.toString(), "Conexao");
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return conectado;
    }
}

Bom, ficou assim a minha classe. Logo no começo, existe um construtor que irá chamar um método criaConexao(); para dar início à conexão.

Esse método criaConexao(); é um método booleano, pois tenho como objetivo no final desse método, retornar true ou false para verificar se está conectado.

Ainda nesse método, logo de cara, existem as variáveis com as configurações para poder fazer a conexão com banco de dados. Eu estou utilizando o driver JDBC MySQL para poder fazer a conexão e gerar a string do driver.

* Detalhe muito importante: quando você está criando a conexão com banco de dados, o Java força você a usar o try/catch como segurança. É aí que fica o segredo para poder gerar os logs. Pois o catch captura uma Exception e, a partir daí, podemos chamar um método para gerar o nosso log.

Ainda no método criaConexao(), coloquei diferentes tipos de Exception, para que fique melhor saber qual erro que estou tratando.

Vamos para a próxima etapa, que é nossa classe que gera os logs.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Classe main / Classe conexão com MySQL
   3. Classe que gera log
Outros artigos deste autor

jQuery - Criando um simples jogo da velha

Introdução ao Java - Hello World

Leitura recomendada

Convertendo softwares utilizando OpenOffice e Java

Programando em Java para Console

GCJ – Conhecendo o compilador Java Livre

Arch Linux + NetBeans + MySQL + Oracle 10g

HrStatus - agilizando a virada do horário de verão

  
Comentários
[1] Comentário enviado por Ed_slacker em 07/07/2014 - 07:29h

Não seria mais fácil usar o Log4J?

[2] Comentário enviado por klone1 em 07/07/2014 - 10:10h

Sim edi_oliver, o uso de uma framework sempre facilita nossa vida na programação. Mas meu objetivo aqui era mostrar como são gerado logs a partir do zero.

[3] Comentário enviado por raphaeljava em 10/11/2016 - 19:18h

Boa noite Clauber ,

Muito bom o seu tutorial, copiei seu código aqui, e na hora de declarar as variáveis está dando erro na classe Conexao:

geraLog log;

Sou leigo no assunto, estou fazendo um projeto de faculdade com a finalidade de cadastrar usuários do sistema como administrador, usuário comum e etc.., e ao invés de criar um arquivo eu gostaria que o sistema gravasse as informações em um banco de dados de logs por exemplo, com as informações de data, quem entrou no sistema, as alterações e os erros.

Você tem alguma dica de como posso fazer isso?


Contribuir com comentário