Hola en spring lo puedes hacer de la siguiente manera:
1. Copiar el jar del log4j a tu classpath:
2. Declarar un bean de spring para su integración con el log4j:
Código Javascript
:
Ver original<!-- Inicialización del log4j: -->
<bean id="log4jInitialization" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass" value="org.springframework.util.Log4jConfigurer" />
<property name="targetMethod" value="initLogging" />
<property name="arguments">
<list><value>C:\\logs\spring.config</value></list>
</property>
</bean>
3. Crear un archivo de configuración del log4j: spring.config(puedes colocarle el nombre que quieras pero debe ser el mismo referenciado que en el bean de spring)
Código txt:
Ver original#### Que es lo que vamos a loguear:
log4j.rootLogger=DEBUG,fileAppender,consolaAppender
log4j.logger.org.springframework=DEBUG,fileAppender,consolaAppender
log4j.logger.javax.transaction=DEBUG,fileAppender,consolaAppender
#### Escribimos el log hacia la consola:
log4j.appender.consolaAppender=org.apache.log4j.ConsoleAppender
log4j.appender.consolaAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.consolaAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} (%F:%L) %-5p %t %c - %m%n
#### Escribimos el log hacia un archivo:
log4j.appender.fileAppender=org.apache.log4j.RollingFileAppender
log4j.appender.fileAppender.File=C:\\logs\\spring.log
log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %t %c - %m%n
log4j.appender.fileAppender.MaxFileSize=100MB
log4j.appender.fileAppender.MaxBackupIndex=10
log4j.appender.fileAppender.Threshold=debug
log4j.appender.fileAppender.Append=true
4. Empezar a utilizar el logger:
Código Javascript
:
Ver original@Service("facadeService")
@Transactional
public class FacadeServiceImpl implements FacadeService {
private final Logger logger = Logger.getLogger(getClass());
@Autowired
private MovimientoBBVADAO movimientoBBVADAO;
@Autowired
private MovimientoScotiabankDAO movimientoScotiabankDAO;
@Override
@Transactional(rollbackFor=Exception.class,readOnly=false)
public void transferenciaInterbancaria(Movimiento movimiento) throws Exception {
logger.info("INICIANDO TRANSFERENCIA...");
movimientoBBVADAO.retirarBBVA(movimiento);
movimientoScotiabankDAO.depositarScotiabank(movimiento);
logger.info("TRANSFERENCIA FINALIZADA...");
}
}
El resultado es algo como esto:
Código txt:
Ver original2010-02-24 10:31:57 (JakartaCommonsLoggingImpl.java:27) DEBUG main java.sql.PreparedStatement - {pstm-100003} Parameters: [1500, 0000000004]
2010-02-24 10:31:57 (JakartaCommonsLoggingImpl.java:27) DEBUG main java.sql.PreparedStatement - {pstm-100003} Types: [java.math.BigDecimal, java.lang.String]
2010-02-24 10:31:57 (FacadeServiceImpl.java:30) INFO main pe.com.slcsccy.testspring.service.FacadeServiceImpl - TRANSFERENCIA FINALIZADA...
Carlos Cacique.
http://carloscacique.blogspot.com