A melhor maneira de gerar um LOG
15/02/2012 18:08
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


1
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()
}
}
}
}

16/02/2012 01:28


0
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.



22/02/2012 16:03



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