A melhor maneira de gerar um LOG
Postado em 15/02/2012 18:08
0
0
Oi Pessoal!

Tenho uma aplicação e gostaria de saber a melhor maneira de gerar um log.

Pelo que entendi, o LOG4J somente gera logs de acontecimentos relacionados ao servidor e não com os acontecimentos e operações da aplicação.

Preciso que todas as operações CRUD sejam registradas no log porém não gostaria de criar um script e mandá-lo executar a cada operação com as informações a se registrar.

Alguém possui uma idéia para este problema?
Tags: log log4j
ivgsilva
Pontos: 182






1
0
16/02/2012 01:28
O log a que vc se refere seria, por exemplo, registrar um usuario/acao/hora de uma acao?
se for uma maneira bem simples de fazer isto é utilizando os filters (http://grails.org/doc/latest/guide/theWebLayer.html#6.6 Filters)

Você pode interceptar todas as ações dos controllers e das actions e no seu caso registrar estas informações.
No exemplo abaixo eu estou filtrando todos os controllers e todas as actions após as mesmas serem executadas (after).
def filters = {
log(controller: '*', action: '*') {
after = {
def usrLogado = springSecurityService?.getCurrentUser()
String msg = ""

if (actionName.equals("save")) {
msg = "salvou um(a) novo(a) " + controllerName
} else if (actionName.equals("delete")) {
msg = "excluiu um(a) " + controllerName
} else if (actionName.equals("update")) {
msg = "atualizou um registro do tipo " + controllerName
}
if(!msg.equals("") && usrLogado) {
def hist = new Historico(usuario: usrLogado, mensagem: msg, data: new Date()).save()
}
}
}
}


vrcarvalho
Pontos: 78



0
0
22/02/2012 16:03
Victor,

era isso que eu queria fazer, salvando em um banco de dados.

Sua idéia de fazer isso via FIlters foi ótima.

Muito obrigado por me ajudar.




ivgsilva
Pontos: 182



 


Esqueceu sua senha?
 
Grails Brasil é mantido por itexto Desenvolvimento de Projetos Ltda.
Em caso de problemas, sinta-se livre para procurar Henrique Lobo Weissmann (Kico) por e-mail: kicolobo@itexto.net
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão (clique no logo à direita para maiores detalhes)