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 :).
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.
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. ;)[/quote]
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.
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.