Logs en Hybris Commerce

Logs en Hybris Commerce

SAP Hybris Commerce incluye el framework de logging Apache Log4j 2. 
Apache log4j
By Apache Software Foundation ([1], [2])
[Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)], via Wikimedia Commons

Las versiones previas de Hybris Commerces utilizaban la versión 1.x de Log4j. Una de las mejoras notables respecto a la versión 1 es una mejora de rendimiento en sistemas multi-hilo como Hybris Commerce.

Lamentablemente debido a cambios en la arquitectura del framework las versiones 1 y 2 no son compatibles en Hybris Commerce.

Log4j 2 se puede usar directamente o a través de la facaçe Simple Logging Facade for Java.
  •  org.slf4j.LoggerFactory -> Utiliza SLF4J
  •  org.apache.logging.log4j.LogManager -> Utiliza Log4j 2

Todo el código existente que use Log4j 1 será redirigido a Log4j 2 por lo que no hay que preocuparse si estamos en un escenario de legacy code.

Cómo configuramos Log4j 2

Podemos configurar los logs a través de un fichero xml (hybris-log4j2.xml) o por fichero properties. Leyendo en foros de Hybris en algunas versiones la configuración por xml tiene algunos errores por lo que recomiendo utilizar fichero properties.

Ejemplos de logs están en el fichero platform\project.properties, pero os mostraré un ejemplo de como crear un log para alguna Interfaz o paquete que sea crítica y queramos guardar su log en un fichero especial. Todas las configuraciones de log en properties tienen que comentar con log4j2


Ejemplo

Imaginemos que tenemos un servicio crítico en com.empresa.proyecto.modulo.service.impl y queremos que todas esas llamadas a los métodos se guarden en un log con un nivel de trazas más fino (debug).

Por ejemplo en nuestro fichero local.properties tendremos algo así.


######## custom requests logger configuration ##################

# desactivamos la configuración por xml

log4j2.config.xml=

log4j2.name=PropertiesConfig
log4j2.appenders=miLogParticular

log4j2.appender.miLogParticular.type=RollingFile
log4j2.appender.miLogParticular.name=miLogParticular

log4j2.appender.miLogParticular.fileName=${sys:HYBRIS_LOG_DIR}/miLogParticular.log
log4j2.appender.miLogParticular.filePattern=${sys:HYBRIS_LOG_DIR}/miLogParticular-%d{MM-dd-yy}-%i.log.gz

log4j2.appender.miLogParticular.layout.type=PatternLayout
log4j2.appender.miLogParticular.layout.pattern=%d %p %C{1.} [%t] %m%n

log4j2.appender.miLogParticular.policies.type=Policies
log4j2.appender.miLogParticular.policies.time.type=TimeBasedTriggeringPolicy
log4j2.appender.miLogParticular.policies.time.interval=1
log4j2.appender.miLogParticular.policies.time.modulate=true

log4j2.appender.miLogParticular.policies.size.type=SizeBasedTriggeringPolicy
log4j2.appender.miLogParticular.policies.size.size=100MB

log4j2.appender.miLogParticular.strategy.type=DefaultRolloverStrategy
log4j2.appender.miLogParticular.strategy.max=5

log4j2.loggers=custom
log4j2.logger.custom.name=com.empresa.proyecto.modulo.service.impl
log4j2.logger.custom.level=debug
log4j2.logger.custom.additivity=true
log4j2.logger.custom.appenderRefs=miLogParticular

log4j2.logger.custom.appenderRef.rolling.ref=miLogParticular


Con esta configuración hemos creado un registro particular para los servicios que se encuentren dentro del paquete deseado. A parte hemos establecido un empaquetamiento diario y compresión en gz que nos será muy útil para no llenar el disco ya que hemos establecido nivel debug. 

Más Información

Comentarios

Entradas populares de este blog

SAP Hybris Commerce - SAP Commerce Cloud Versión 1808

Páginas responsive en Hybris