Log de Usuários em um Sistema Web  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
leonickel
JavaChild

Membro desde: 28/08/2007 19:51:12
Mensagens: 141
Localização: São Paulo - SP
Offline

Fala Galera do GUJ!

Estou dando uma estudada em Log de Usuários e queria saber o que voces acham sobre este tema. Desenvolvemos um Sistema Web que é encarregado de interagir com o nosso banco de dados para gerenciar(adição, exclusão, consulta) de várias funcionalidades. E agora precisamos implementar um log de atividades para saber quem fez o que: Ex: Quando e quem adicionar o usuário x, quando apagaram o grupo y, etc.....

Dando uma pesquisada na web sobre Log de atividades dos usuários, encontrei duas diferentes abordagens: a primeira seria criar uma tabela específica para isso e nela gravaríamos o usuário, data, operação realizada e em alguns foŕuns que li o pessoal sugeriu acrescentar o sql usado. Na segunda opção seria criar nas tabelas que o meu sistema utiliza novos campos para identificar os logs dos usuários que mexeram naquele registro, como campo para quem mexeu, quando, qual operação (update, add, delete, por exemplo).

Gostaria de saber a opinião de voces sobre este tema e o que voces mais aconselham como boas práticas.

Desde já agradeço a atenção.

Abraços,
Leonardo Nickel
nbluis
GUJ Master
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

Vai depender do nivel de log que vc precisa implementar.
Por exemplo.
Se precisa apenas da data e do usuário da ultima alteração, utilizam muito na mesma tabela do registro.
Agora, se precisa armazenar as alteções ou até o estado anterior do objeto dai vai precisar ser algo mais enxuto.


Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
pardal_nb
Virtual Machine Man

Membro desde: 12/09/2006 08:26:06
Mensagens: 674
Offline

eu utilizo dos 2 casos, eventualmente. O q quero dizer com isso?!

Tenho uma tabela responsável pelos logs...porem em ALGUMAS tabelas eu tenho alguns dados como data de criacao do registro e o usuario q o criou por exemplo...isso como forma de agilizar algumas pesquisas...ja q minha tbl de LOG eh mais extensa...e é nela q eu gravo absolutamente TUDO...

flw
leonickel
JavaChild

Membro desde: 28/08/2007 19:51:12
Mensagens: 141
Localização: São Paulo - SP
Offline

nbluis,

valew pela resposta!

Como estou estudando sobre estas coisas, ainda não sei dizer se vamos armazenar apenas a ultima operação naquele registro ou se vamos armazenar um histórico. Acredito que o mais correto seria armazenar um histórico para termos como saber de todas as operações, mas fazendo assim eu acho que dá mais trabalho também.

O que voces acham que é tendência desse tipo de funcionalidade?

E outra coisa, na maioria dos lugares que achei sobre este tema, o pessoal insere esses logs via trigger diretamente no banco, e aqui vamos deixar esta lógica na aplicação. Estava pensando em utilizar interceptor para isso. Alguma ressalva quanto a isso?

nbluis
GUJ Master
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

Eu optaria por AOP(seu interceptor) mesmo.

Quanto ao nível, vai depender da criticidade de seus dados.
Mas certamente vai dar bastante trabalho fazer um log completo.
Se não necessita disso, fuja e faça algo simples que resolva seu problema.

Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
pelegrini
JavaBaby

Membro desde: 27/03/2006 09:26:20
Mensagens: 91
Localização: São Paulo
Offline

O exemplo classico de POA - Programação Orientada a Aspecto é de como implementar um log que intercepte os métodos de uma classe, mas vai dar um trampo hein, e deve-se tomar muto cuidado com POA, principalmente na documentação dos sistemas, pois um novo programador que passe a compor a equipe pode fazer algumas cagadas facil...facil se não houver uma boa documentação.

Dependendo... triger não seria uma solução ruim? Qual o banco de dados que vc esta utilizando ???

"Mais vale a lágrima da derrota do que a vergonha de não ter lutado."
[Email] [MSN]
leonickel
JavaChild

Membro desde: 28/08/2007 19:51:12
Mensagens: 141
Localização: São Paulo - SP
Offline

verdade, esse conceito de POA se nao bem compreendido pode dar mais problemas do que benefícios.

Quanto ao nível, não precisaria ser algo tão específico, axo que um log simples de quando o registro foi criado, alterado, removido, por quem e qual registro já seria um grande começo.

Aqui utilizamos Oracle 10g.........

Valew ae por todos os comments
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team