Buenas pessoal.
Como vocês fazem os log’s das aplicações de vocês ? (log’s de inserção, exclusão, alteração):
Uma tabela no próprio banco de dados ?
Opção anterior + salvando em arquivos no HD de tempos em tempos, compactando os mesmos, e limpando a tabela.
Uma nova base separada, com uma única tabela para esse propósito tendo em vista o rápido crescimento de informações nessa tabela ?
Em arquivos no HD, compactando a cada “n” tempo para que não fiquem diversos arquivos soltos ?
Caso a resposta seja a questão de aqruivos no HD, qual a melhor forma de pesquisa nesses arquivos. Por exemplo: Tenho em mãos o código auto-incremento de um determinado registro que foi alterado. Preciso consultar ele no log para saber o histórico de alterações e para isso vou ter que catar arquivo por arquivo (descompactando e compactdo) até localizar um que contenha essa informação.
Atualmente eu gravo em uma tabela no banco de dados, porém estou remodelando algumas coisas e o log é um dos principais assuntos :).
usa o log4j…ele cria um arquivo .log e para enviar mensagens de logo é bem simples
//criaumatributoparagravaroarquivonoarquivodelogprivateCategorylog=null;log=Log.getInstance("referencia","arquivo.properties");//gravaumamensagemlog.info("teste de log");//ClasseLog.javapublicfinalclassLog{privatestaticCategorylog=null;publicstaticCategorygetLogging(Stringreferece,StringarqProperty){try{PropertyConfigurator.configure(SystemEx.convFilePath("./etc/"+arqProperty));log=Category.getInstance(referece);}catch(Throwableth){th.printStackTrace();System.exit(-1);}returnlog;}}
Eu acredito que seja simples. Meu objetivo é saber quantos registros o usuário lançou no mês (é uma dos pontos de avaliação utilizados). Os alterados e excluidos também vão contar, mas de forma diferente.
Além disso, quero poder consultar o log de alterações e exclusões para saber se alguém fez bobagem com alguma informação.
Java_Vinicius_Machin
Eu acredito que seja simples. Meu objetivo é saber quantos registros o usuário lançou no mês (é uma dos pontos de avaliação utilizados). Os alterados e excluidos também vão contar, mas de forma diferente.
Além disso, quero poder consultar o log de alterações e exclusões para saber se alguém fez bobagem com alguma informação. ;)
É razoavelmente fácil fazer sim!
Rodrigo_Carvalho_Aul
Aqui em alguns projetos usamos um banco de auditoria separado com uma estrutura de tabelas quase idêntica à estrutura do banco de produção. Em produção colocamos triggers que replica os dados inseridos e alterados no banco de auditoria. A diferença entre os bancos é que no de auditoria não tem índices e chaves primárias.
[]'s
Rodrigo Auler
boaglio
Vc precisa desse histórico em banco de dados mesmo?
Tome cuidado que isso pode impactar na performance de sua aplicação.
khaoz
A questão de usar no banco de dados é pela velocidade e facilidade de consulta. Mas eu vou criar um DB paralelo e as tabelas de auditoria neles, como citou o amigo anteriormente.
Porém esse novo banco não terá a mesma estrutura. Apenas uma tabela para relacionar o usuário ao registro incluido, alterado ou excuido e um campo que irá armazenar, no caso de alteração ou exclusão, o conteúdo do antigo registro e do novo registro se for o caso.
ASOBrasil
Se for por essas opções, é mais fácil salvar o arquivo em XML e utilizar o Chainsaw! Muito mais rápido e prático!