Java Templates en Eclipse: Logger

Los Templates del editor Java de Eclipse son estupendos. Ya sabeis, cuando estás programando una clase Java, tecleas por ejemplo for, pulsas Ctrl + Espacio y te aparece un popup con las posibles estructuras del bucle for para autocompletar. La de teclas que te puedes ahorrar en un par de años!

No sólo existen templates para las estructuras de control, también hay para traza, declaración de métodos, inicialización de atributos, constantes, lazy y más. La pantalla donde gestionar los templates está en Window -> Preferences -> Java -> Editor -> Templates.

Ahora piensa en una línea de código que repitas en casi todas tus clases y para la que no haya un template en Eclipse. ¿Es ésta?

private static final Log logger = LogFactory.getLog(NombreClase.class);

Si es así, puedes crearte un template, llamémosle logger, con este simple código:

private static final ${loggerType:newType(org.apache.commons.logging.Log)} logger =
${logFactoryType:newType(org.apache.commons.logging.LogFactory)}
.getLog(${enclosing_type}.class);



Aquí te dejo otro para el típico debug (evitando procesar el posible mensaje):

if (logger.isDebugEnabled()) {
logger.debug(${msg});
}



Y tú, ¿usas alguno más que no vaya de serie?

5 comentarios :: Java Templates en Eclipse: Logger

  1. Mi Logger es más bien éste:

    ${:import(org.loom.log.Log)}private static Log log = Log.getLog();

    Crea el import y además inserta el atributo. El logger que yo uso no necesita que se le pase el nombre de clase (lo saca de manera similar a log5j), de resto es todo igual.

  2. Hola Ignacio.

    No conozco Loom, pero el template que he presentado te hace también los imports (Log y LogFactory) con newType. Lo del nombre de la clase es restricción del api de commons logging.

  3. Pues yo metía el del logger que comentas y el identificador de serializable en los snippets, pero está claro que los templates es mejor lugar. Habrá que migrar.

  4. ammm por favor me podrias decir como se llama el template si no estoy mal deberia ser:

    map.put(loggerType, milogger);
    map.put(lgFactory, milogfactory);
    map.put(enclosing_type, mienclosing_type);

    o algo asi, por favor ayuda soy muy novato en el tema!

  5. ammm por favor me podrias decir como se llama el template si no estoy mal deberia ser:

    map.put(loggerType, milogger);
    map.put(lgFactory, milogfactory);
    map.put(enclosing_type, mienclosing_type);

    o algo asi, por favor ayuda soy muy novato en el tema!

Publicar un comentario