Tratamento de Logs
18/07/2012 19:05
1
Boa tarde!

Pessoal, surgiu a necessidade de tratamento de LOG's na aplicação que estou desenvolvendo, log's de CRUD de alguns objetos, e acesso(autenticação de usuários, e localidade). Gostaria de algumas sugestões.
Qual a melhor estratégia para o tratamento de Logs no grails? Vocês utilizam algum plugin ou implementaram salvando status em uma tabela de logs?


[]'s


Luciano
Tags: tratamento de logs


1
Oi Luciano,

há algumas alternativas interessantes. Se você quiser auditibilidade sobre o que no seu banco de dados está sendo alterado e por quem, tem o plugin auditable (há inclusive um link para ele na seção links do Grails Brasil).

Se quiser registrar eventos, o ideal é usar a própria configuração do Grails, ou seja, usando o Log4j mesmo. Ai você pode inclusive ir criando appenders diversificados, um pra cada parte do seu sistema (o Grails Brasil é assim).


0
Olá Kico, obrigado pela dica!

Confesso que ainda estou pensando em uma melhor abordagem, irei descrever minhas necessidades... Estou aberto a sugestões =P

Preciso que seja registrado a autenticação de todos os usuários, incluindo IP e Data/Hora de acesso, possibilitando ao admin do sistema recuperar essas informações futuramente por meio de relatórios. Estou utilizando Spring Security.

Preciso que seja registrado algumas ações no sistema, como criar um pedido, alterar, confirmar, etc. Armazenando a data, e o usuário que realizou a alteração e id do objeto modificado.

Pensei em criar 2 domínios, um para o registro do log de acesso, e outro para o log de operações. Você acredita ser uma boa alternativa? Confesso estar preocupado com o inchaço gerado no banco.

[]'s

Luciano
18/07/2012 20:34


0
Oi Luciano,

criar classes de domínio para registrar a execução destas operações é uma alternativa viável. No entanto, quando tratamos de eventos, como por exemplo um usuário que se autentica no sistema, nem sempre é uma boa opção.

Nem sempre é uma boa opção porque normalmente criamos tabelas gigantescas no banco de dados que, na boa? Na prática raras vezes são usadas. No caso do Grails Brasil passei por uma experiência similar. Minha solução foi a seguinte: todo o processo de autenticação é salvo em arquivo no formato texto usando algum caractere separador como ponto e vírgula por exemplo. Em seguida, quando preciso processar estas informações, uso alguma ferramenta de análise como R ou mesmo o Excel pra tirar algum relatório útil de lá. Da um trabalhinho pra processar? Com certeza, mas pelo menos eu não fico gastando processamento caro com banco de dados para algo que raras vezes vou usar.

Com relação a registro de pedidos e tal, talvez seja uma boa idéia ter estes dados no banco de dados, porque são informações que você vai usar com mais frequencia. Nestes casos, o que costumo fazer é integrar estas informações de log dentro do meu sistema de uma forma que "não se pareça com um log". Por exemplo, adicionando um campo que informe a data em que algo foi criado e o usuário que fez a persistência do regsitro.


0
Muito obrigado pelas dicas Kico, irei fazer como recomendou. Os logs de acesso deixarei separado em um arquivo de texto, e os logs de operações persistirei em minha base de dados.

[]'s

Luciano
19/07/2012 13:26


0
Kico, só mais uma coisa, vc criou um serviço que coleta esses logs? Ou está fazendo isso do controller login?


[]'s

Luciano
19/07/2012 18:45


0
Oi Luciano,

no controller mesmo. Se estiver usando o Spring Security é o controller Login se não me engano.



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto