Galera boa tarde.
Minha duvida é a seguinte:
Eu preciso fazer com que quando um usuario executar uma ação(Ex: submit) em um formulario, ao mesmo tempo seja executado um insert em uma tabela Guardando a informação de quem foi o user e qual a terefa que ele executou, o dia e hora etc…
Eu gostaria de saber qual a melhor maneira de se implementar isso?
Seria chamando um metodo em cada servlet que executa uma ação?
Ou por um filter??
Ou existe mais alguma alternativa que se enquadra melhor??
Obs: Não quero tudo picadinho, pois ja sei +ou- como fazer, porem algum exemplo sera bem vindo 
abraço a todos e obrigado por tudo…
Cara se eu entendi bem você quer gravare log das ações do seu sistema, parta mim o melhor jeito de fazer isso é com o log4j dê uma olhada lá no site do projeto e você vai ver que é um jeito prático e facil de fazer o que você esta querendo.
http://projects.apache.org/projects/log4j.html
Marciano.
Opa, valeu mesmo, irei verificar e posto aqui para os colegas oque achei 
abraço e valeuuuu
Cara uma forma simples é criar um tabela no seu banco de dados chamada log. Quando você efetuar um ação de inserção por exemplo na tabela de usuario se a resposta for true você inseri o nome do usuário pego da sessão e o horário e inseri na tabela log.
exemplo:
if (dao.inserir(usuario)) {
if (log.inserir(dao.getQuery())) {
mensagem = getMensagem("inclusao");
limparDados();
this.acao = PADRAO;
} else {
rollback();
mensagem = getMensagem("erroBanco");
}
} else {
mensagem = getMensagem("erroBanco");
}
}
public boolean inserir(String sql) {
boolean retorno=false;
//Pega a Data e a Hora
log.setData(new Timestamp(System.currentTimeMillis()));
//Pega a Descrição
log.setDescricao(sql);
//Pegar o Tipo de Ação. ( exemplo INSERT, UPDATE, DELETE )
log.setAcao(acaoSQL(sql));
FacesContext context = FacesContext.getCurrentInstance();
HttpSession sessao = (HttpSession) context.getExternalContext().getSession(false);
//Pega o usuario da sessão do Faces
log.setUsuario(sessao.getAttribute("login").toString());
//Pega o nome da tabela
log.setNmTabela(nomeTabela(sql));
abrirConexao();
if (dao.inserir(log)){
retorno = true;
}
fecharConexao();
return retorno;
}
acho que esse trecho vai lhe ajudar …