Un Hombre Alado Extraña La Tierra

Se que regresaré a escribir articulos originales, por ahora presento una recopilación de Temas de Ciencia de mi interes.

sábado, mayo 01, 2010

Mini tutorial, log4j en Grails

 
 

Sent to you by Nelson.Cruz via Google Reader:

 
 

via Yo, programador by Alberto Vilches on 4/13/10

El siguiente mini tutorial intenta explicar como configurar Grails para que ciertas clases (las que nosotros queramos) escriban sus logs en un fichero distinto. Esto puede ser necesario si, por ejemplo, hemos programado un componente en concreto usando varias clases que generan muchas trazas, y el fichero de log general de nuestro servidor de aplicaciones nos las muestra todas juntas y mezcladas, haciendo difícil el seguimiento de errores. Lo que vamos a hacer es:

  • Configurar log4j para que cree un fichero de log independiente llamado pepito.log
  • Configurar una clase para que escriba sus trazas en este fichero de log.

Primero tenemos que editar el fichero grails-app/conf/Config.groovy y añadirle un nuevo appender y una categoría nueva en la sección log4j.

 log4j = {     appenders {         console name: 'stdout', layout: pattern(conversionPattern: '%d{yyyy-MM-dd HH:mm:ss} %-5p [%c{2}] %m%n')          rollingFile name:'pepitoAppender', file: "/tmp/pepito.log", append: true,             layout: pattern(conversionPattern: '%d{yyyy-MM-dd HH:mm:ss} %-5p [%c{2}] %m%n')     }      info pepitoAppender:'pepito', additivity:false     ... } 

El atributo additivity:false indica que si se usa ese appender, no se utilice ninguno otro más. De esta manera se evita que los logs salgan, además, en la salida standard y, por lo tanto, en el fichero de log principal de nuestro servidor de aplicaciones.

Ahora tenemos que especificar en cada una de las clases (nuestro controladores, servicios, etc) que utilice nuestra categoría "pepito". Para ello, utilizaremos el constructor LogFactory.getLog() indicando como parámetro un String que empiece siempre con "pepito.", por ejemplo "pepito.xxxx" o "pepito."+MiClase.class.getName()

 package pepito import org.apache.commons.logging.*  class PepitoController {      private static Log log = LogFactory.getLog("pepito."+PepitoController.class.getName())      def index = {         log.info "Esto debería salir en pepito.log"     } } 

Si utilizamos Tomcat, podemos hacer que nuestros logs se creen en la carpeta $CATALINA_HOME/logs con el siguiente código:

 log4j = {      def catalinaBase = System.properties.getProperty('catalina.base')     def logDirectory = !catalinaBase? '/tmp': "${catalinaBase}/logs"      appenders {         rollingFile name:'pepitoAppender', file: "${logDirectory}/pepito.log", append: true,             layout: pattern(conversionPattern: '%d{yyyy-MM-dd HH:mm:ss} %-5p [%c{2}] %m%n')     } 

Así, si está definida la propiedad Java 'catalina.base' con el directorio de instalación de Tomcat (ya se encarga el propio Tomcat de definir esta propiedad cuando arranca), utilizará el directorio logs de Tomcat. Si no estuviera definida, utilizará "/tmp".

Otra forma de hacerlo sería especificando un appender distinto para cada environment. De esta manera podemos cambiar o añadir parámetros de configuración en los appenders, como el tamaño del fichero, el número de backups:

 log4j = {      appenders {          development {             rollingFile name:'pepitoAppender', file: "/tmp/pepito.log", append: true,                 layout: pattern(conversionPattern: '%d{yyyy-MM-dd HH:mm:ss} %-5p [%c{2}] %m%n')         }         production {             rollingFile name:'pepitoAppender', file: "/usr/local/tomcat/logs/pepito.log", append: true,                 maxBackupIndex: 10, maxFileSize: "10MB",                 layout: pattern(conversionPattern: '%d{yyyy-MM-dd HH:mm:ss} %-5p [%c{2}] %m%n')         }     } 

Más información:



 
 

Things you can do from here:

 
 

Las métricas de calidad en el proyecto

 
 

Sent to you by Nelson.Cruz via Google Reader:

 
 

via Mejores Proyectos by Jose Esterkin on 4/13/10

Dentro del proceso "8.1.3. Planificar la Calidad" en el PMBOK, una de las salidas son las Métricas de Calidad en el proyecto. Para explicar el concepto de métrica, el PMBOK hace una diferenciación entre métrica y medición. Una métrica de calidad es una definición operativa que describe un atributo del producto o del proyecto. Una [...]

 
 

Things you can do from here:

 
 

lunes, octubre 29, 2007

martes, mayo 01, 2007

No lo entendí. . .

Interesante video sobre los efectos de las bajas temperaturas en los objetos. . .
¿alguen entiende este efecto?
. . recibo comentarios.

martes, abril 10, 2007

Discurso de Steve Jobs en la Universidad de Stanford (subtitulos en español)

Discurso de Steve Jobs en la Universidad de Stanford durante la apertura del curso. Subtítulos en español por http://www.recursosparapymes.com Agradecimiento a http://www.faq-mac.com/bitacoras/memoria/ por la base para la traducción final

jueves, febrero 22, 2007

De regreso

Muy pocas personas se dan el lujo de tener un cambio de vida tan radical en tan corto tiempo.
por mi parte he sobrevivido. . .
(lo cual incluyó 2 meses sin internet en casa).

Pero para reconciliarnos, les dejo este espectacular video sobre el Concepto de WEB2.0
gracias a lo visto en elastico

miércoles, noviembre 22, 2006

Mulltiplicación Grafica


Easy Mental Multiplication Trick - video powered by Metacafe
UUAAOOOO . . .
via Gaussianos sobre (Vía metacafe) Muestran este este muy interesante metodo para multiplicar

¿practico? . . no sé
. . .interesante Por Supuesto!!!

martes, noviembre 21, 2006

[live] Dido - Life for rent

Dido - Life for rent - LIVE

Simplemente me facina esta cantante . . .