Login com Spring e gravar log das informações

Bom dia, pessoal eu faço uma simples validção com spring mas gostaria de gravar logs de quando o usuáro logar, tipo datahora, usuario, quando fez logoff, ip e o que for mais interessante, alguém já fez isso de alguma forma, segue meu spring.

`

<?xml version="1.0" encoding="UTF-8"?>

<b:beans xmlns="http://www.springframework.org/schema/security"
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:b="http://www.springframework.org/schema/beans"
xsi:schemaLocation=“http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.xsd”>

<http auto-config="true" use-expressions="true">
	<intercept-url pattern="/index.jsf"
		access="hasAnyRole('ROLE_ADMIN','ROLE_USER')" />
	<form-login login-page="/login.jsf"
		authentication-failure-url="/login.jsf?erro=true" />
	<logout logout-success-url="/login.jsf" logout-url="/j_spring_security_logout"
	     invalidate-session="true" />
	
	<session-management invalid-session-url="/login.jsf?session=1">
		<concurrency-control max-sessions="1"
			error-if-maximum-exceeded="true" />
	</session-management>
	

</http>

<authentication-manager>
	<authentication-provider>
		<jdbc-user-service data-source-ref="dataSource"
			users-by-username-query="SELECT login as username, senha as password, enable FROM usuario WHERE login=?"
			authorities-by-username-query="SELECT login as username, permissao as authority FROM usuario WHERE login=?" />
	</authentication-provider>
</authentication-manager>

<b:bean id="dataSource"
	class="org.springframework.jdbc.datasource.DriverManagerDataSource">
	<b:property name="url"
		value="jdbc:mysql://localhost:3306/consultas" />
	<b:property name="driverClassName" value="com.mysql.jdbc.Driver" />
	<b:property name="username" value="root" />
	<b:property name="password" value="root" />
</b:bean>

</b:beans>
`

alguém ai?