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

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!!!

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.

3 curtidas

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

3 curtidas

Entendi sim kkk, perfeito cara

1 curtida

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!!!

2 curtidas

Muito bom mano :slight_smile: