Registrando atividade do usuário no aplicativo Web

Gostaria de poder registrar as atividades do usuário em um aplicativo Web. Atualmente, estou usando o log4j, que funciona bem para erros de log, etc., mas não tenho certeza qual é a melhor abordagem para registrar o usuário, o método de servlet executado e os parâmetros de método. Estou usando o Spring Security para autenticação.

Um servlet típico pode ter a seguinte aparência:

public class BankAccountServlet {
    @RequestMapping("/deposit")
    public void deposit(double amount) {
        ...
    }

    @RequestMapping("/checkBalance")
    public double checkBalance() {
        ...
    }
}

Se houver dois usuários, foo e bar, onde foo verifica seu saldo e o bar deposita duas somas em dinheiro 10,00 e 5,00. Eu gostaria que os logs fossem assim:

01/01/1970 23:59:59 - foo - checkBalance
02/01/1970 23:59:59 - bar - deposit - 10.00
02/01/1970 23:59:59 - bar - deposit - 5.00

Se alguém puder oferecer algum conselho, eu realmente aprecio a ajuda dele

questionAnswers(3)

yourAnswerToTheQuestion