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!!!
[RESOLVIDO] Como eu faço um log de atividades no java?
5 Respostas
3 likes
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 likes
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
1 like
Entendi sim kkk, perfeito cara
2 likes
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!!!
Muito bom mano 
Criado 11 de maio de 2017
Ultima resposta 15 de mai. de 2017
Respostas 5
Participantes 3
