
En el caso de Grails inyecta en varias entidades como controladores, servicios y clases de dominio el objeto log con el que se pueden emitir las trazas con el nivel que deseemos.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
log.debug('Esto es un mensaje de depuración') | |
log.info('Esto es un mensaje de información') | |
log.error('Esto es un mensaje de error') |
Una forma de emitir trazas desde un gsp es incluir un scriptlet que obtenga un logger y posteriormente hacer log.debug. Pero si hacemos esto en muchos gsp y de forma habitual es mejor hacerlo con un tag ya que el código de los gsp nos quedará más limpio y será un poco más sencillo además de tener centralizado en un único sitio el tratamiento de los logs de todos los gsp. Ese tag necesitará recibir el nivel de la traza y el mensaje de la traza al menos. Podría ser como lo siguiente:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package es.com.blogspot.elblogdepicodev.grails.taglib; | |
import org.apache.log4j.Level | |
class UtilidadesTagLib { | |
static namespace = 'util' | |
def xlog = { attrs, body -> | |
def level = (attrs.level)?Level.toLevel(attrs.level):Level.DEBUG | |
def message = (attrs.message)?:body() | |
def token = (attrs.token)?:'' | |
message = "[${token}] ${message}".toString() | |
// | |
switch (level) { | |
case Level.FATAL: | |
log.fatal(message) | |
break; | |
case Level.ERROR: | |
log.error(message) | |
break; | |
case Level.WARN: | |
log.warn(message) | |
break; | |
case Level.INFO: | |
log.info(message) | |
break; | |
case Level.DEBUG: | |
log.debug(message) | |
break; | |
case Level.TRACE: | |
default: | |
log.trace(message) | |
break; | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<util:xlog level="info" message="Hola mundo"/> | |
<util:xlog level="info" token="mensaje">Hola mundo</util:xlog> |