Usuário com melhor resposta
Como implementar uma tabela de LOG com todas as alterações feitas no vb.net

Pergunta
-
Estou iniciando na programação agora, estou precisando criar uma funcionalidade de gerênciamento de Log de todas as alterações feitas por um usuário em meu sistema mas não sei como fazer isto no vb.net ou C#. Alguem poderia me ajudar?
Att,
Thiago Gambarra
Respostas
-
Eu utilizo o Log4Net. Ele simplifica muito a codificaçao de Trace.É uma biblioteca free e tem a possibilidade se salvar os logs em diferentes formatos, por ex: no log de eventos do windows,em formato txt e em uma base de dados utilizando o appenderadonetVeja mais aqui:e sobre o appender aqui:e aqui:http://dimecasts.net/Casts/CastDetails/45 (video passo a passo)Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
SOGI INFORMATIQUE LTÉE (http://www.sogi.com)- Marcado como Resposta Fernanda SimõesModerator quinta-feira, 3 de dezembro de 2009 18:32
-
Mas agora, se vc quer rastrear toda e qualquer alteraçao em todas as tabelas do seu sistema, ai é um problema de estrutura da sua base de dados.Eu precisei fazer isso para uma tabela apenas e a soluçao foi incluir uma coluna com a data e outra com status.Toda vez que o usuario incluia um registro, era feito um insert e a coluna status marcado com 0Se o usuario fizesse uma alteracao (update) eu marcava a coluna Status do registro antigo com 1 e incluia outro com as alteraçoes e com o status 0Se o usuario deletasse uma registro eu marcava somente o status com o valor 1.Se voce for ver, é mais ou menos o que um sistema de controle de versao faz.Veja o exemplo da ideia. A tabela abaixo armazena o codigo do cliente, nome e tipo. Date e Status sao meus campos de controleIsersao de registroID Status Date Nome Tipo1 0 1/1/2009 10:00 Willian 1Isersao de outro registroID Status Date Nome Tipo1 0 1/1/2009 10:00 Willian 12 0 1/1/2009 10:01 Thiago 1Alteraçao (update) de um registro. (vou mudar o tipo do cliente 1 para 2)ID Status Date Nome Tipo1 1 1/1/2009 10:00 Willian 12 0 1/1/2009 10:01 Thiago 11 0 1/1/2009 10:02 Willian 2Alteraçao (update) de um registro. (vou corrigir o nome do Cliente 1 )ID Status Date Nome Tipo1 1 1/1/2009 10:00 Willian 12 0 1/1/2009 10:01 Thiago 11 1 1/1/2009 10:02 Willian 21 0 1/1/2009 10:03 William 2Deleçao. Deletar Cliente 2ID Status Date Nome Tipo1 1 1/1/2009 10:00 Willian 12 1 1/1/2009 10:01 Thiago 11 1 1/1/2009 10:02 Willian 21 0 1/1/2009 10:03 William 2Bom. Minha interface mostra só registros com status 0 (atuais). O status 1 é considerado como arquivo. Uma outra interface me mostra o historico. Assim é possivel descobrir o que o usario alterou. Mas depende de um esforço extra de programaçao e um planejamento extra na base de dados. Eu nao recomendo usar isso em todas as tabelas.att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
SOGI INFORMATIQUE LTÉE (http://www.sogi.com)- Marcado como Resposta Fernanda SimõesModerator quinta-feira, 3 de dezembro de 2009 18:32
Todas as Respostas
-
-
Eu utilizo o Log4Net. Ele simplifica muito a codificaçao de Trace.É uma biblioteca free e tem a possibilidade se salvar os logs em diferentes formatos, por ex: no log de eventos do windows,em formato txt e em uma base de dados utilizando o appenderadonetVeja mais aqui:e sobre o appender aqui:e aqui:http://dimecasts.net/Casts/CastDetails/45 (video passo a passo)Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
SOGI INFORMATIQUE LTÉE (http://www.sogi.com)- Marcado como Resposta Fernanda SimõesModerator quinta-feira, 3 de dezembro de 2009 18:32
-
Mas agora, se vc quer rastrear toda e qualquer alteraçao em todas as tabelas do seu sistema, ai é um problema de estrutura da sua base de dados.Eu precisei fazer isso para uma tabela apenas e a soluçao foi incluir uma coluna com a data e outra com status.Toda vez que o usuario incluia um registro, era feito um insert e a coluna status marcado com 0Se o usuario fizesse uma alteracao (update) eu marcava a coluna Status do registro antigo com 1 e incluia outro com as alteraçoes e com o status 0Se o usuario deletasse uma registro eu marcava somente o status com o valor 1.Se voce for ver, é mais ou menos o que um sistema de controle de versao faz.Veja o exemplo da ideia. A tabela abaixo armazena o codigo do cliente, nome e tipo. Date e Status sao meus campos de controleIsersao de registroID Status Date Nome Tipo1 0 1/1/2009 10:00 Willian 1Isersao de outro registroID Status Date Nome Tipo1 0 1/1/2009 10:00 Willian 12 0 1/1/2009 10:01 Thiago 1Alteraçao (update) de um registro. (vou mudar o tipo do cliente 1 para 2)ID Status Date Nome Tipo1 1 1/1/2009 10:00 Willian 12 0 1/1/2009 10:01 Thiago 11 0 1/1/2009 10:02 Willian 2Alteraçao (update) de um registro. (vou corrigir o nome do Cliente 1 )ID Status Date Nome Tipo1 1 1/1/2009 10:00 Willian 12 0 1/1/2009 10:01 Thiago 11 1 1/1/2009 10:02 Willian 21 0 1/1/2009 10:03 William 2Deleçao. Deletar Cliente 2ID Status Date Nome Tipo1 1 1/1/2009 10:00 Willian 12 1 1/1/2009 10:01 Thiago 11 1 1/1/2009 10:02 Willian 21 0 1/1/2009 10:03 William 2Bom. Minha interface mostra só registros com status 0 (atuais). O status 1 é considerado como arquivo. Uma outra interface me mostra o historico. Assim é possivel descobrir o que o usario alterou. Mas depende de um esforço extra de programaçao e um planejamento extra na base de dados. Eu nao recomendo usar isso em todas as tabelas.att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
SOGI INFORMATIQUE LTÉE (http://www.sogi.com)- Marcado como Resposta Fernanda SimõesModerator quinta-feira, 3 de dezembro de 2009 18:32