[RESOLVIDO] Como eu faço um log de atividades no java?

5 respostas
Matheus_Costa

Eae pessoal, eu quero que minha aplicação gere um log de atividades quando alguém alterar, salvar ou deletar um dado no banco de dados, e quero que salve o usuário que alterou, o horário e qual linha ele alterou. Mas eu não faço a minima ideia de como fazer isso. Se alguém poder me ajudar agradeço!!!

5 Respostas

andersonandradeti

Você tem duas opções criar um arquivo de texto na sua aplicação com estas mudanças ou criar triggers de update delete e insert no banco com a vantagem de que se seu banco for alterado direto sem passar na sua aplicação você também teria o log armazenado.

Jeanderson_Silva

o nosso amigo te explicou como deve fazer, vou dar só um exemplo utilizando a API do Java 8:

public static void main(String[] args){
 File arquivo = new File("arquivo.txt");
          
          if( !arquivo.exists()){
              arquivo.createNewFile();
          }
          List<String> lista = new ArrayList<>();
          lista.add("Fazendo um log simples");
          lista.add("Usuario: Joãozinho Fez uma alteração neste hora: " + LocalDateTime.now().format(DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL)));
          
          Files.write(Paths.get(arquivo.getPath()), lista, StandardOpenOption.APPEND);
}

Com esse código vc terá o seguinte:


Obs: Errei ai, era para sair hora e data, mas vc entendeu a ideia kkkk

Matheus_Costa

Entendi sim kkk, perfeito cara

Matheus_Costa

Com base no seu exemplo fiz um log salvando no banco de dados da seguinte maneira:

DaoLogin login = new DaoLogin();
 String user = login.usuario;
 String data = LocalDateTime.now().format(DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL));

    // Método Salvar    
     public void Salvar (BeansUsuario beansus){
         conex.conectar();
    try {
        PreparedStatement pst = conex.con.prepareStatement
            ("insert into usuario(nome, usuario, senha)"
                    + " values(?,?,?)");
            pst.setString(1, beansus.getNome());
            pst.setString(2, beansus.getUsuario());
            pst.setString(3, beansus.getSenha());
            pst.execute();
            //
        PreparedStatement pst2 = conex.con.prepareStatement
            ("insert into atividades(usuario, acao, campo, data)"
                    + " values(?,?,?,?)"); 
            pst2.setString(1, user);
            pst2.setString(2, "Salvou o novo Usuario:");
            pst2.setString(3, beansus.getNome());
            pst2.setString(4, data);
            pst2.execute();
            JOptionPane.showMessageDialog(null, "Dados inseridos com Sucesso");
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Erro ao inserir Dados.\n Erro:"+ex);
    }
     conex.desconetar();
 }

RESLVIDO!!!

Jeanderson_Silva

Muito bom mano :slight_smile:

Criado 11 de maio de 2017
Ultima resposta 15 de mai. de 2017
Respostas 5
Participantes 3