Vamos a ver, creo que no entiendes muy bien lo que significa static.
static se ejecuta al cargar la clase, y se ejecuta una unica vez, no es muy lógico hacer try catch -> System.exit.
El logging es al fin y al cabo escribir mensajes en un fichero, cada mensaje puede tener un nivel distinto, y el Logger lo que proporciona es una interfaz sencilla de usar.
En general, cada clase deberia tener su instancia de Logger, y usarlo, pero si lo que quieres es, tener una clase que se encargue del Logging, eso ya esta hecho, por la mayoria de logs.
En si, deberias a acostumbrarte a no reinventar la rueda :
log4j -> http://logging.apache.org/log4j/
apache commons logging -> http://commons.apache.org/logging/
slf4j -> www.slf4j.org/
En si, es muy sencillo utilizar cualquiera de estos, pero si aun si quieres implementar tu clase, y utilizar la peor opcion de todas ( java.util.logging )
http://www.crazysquirrel.com/computing/java/logging.jspx
La configuracion de tu logger, deberia ir en un fichero a parte. logging.properties, log4j.properties , ... etc
public class MiClaseQueNecesitaLogging {
private static final org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(MiClaseQueNecesitaLogging .class);
private static final org.apache.commons.logging.Log logger = LogFactoryUtil.getLogger(MiClaseQueNecesitaLogging .class);
private static final java.util.logging.Logger javaUtilLogger = java.util.logging.Logger.getLogger(MiClaseQueNecesitaLogging .class);
public void methodQueNecesitaLogging() {
if (logger.isDebugEnabled()) {
logger.debug("Hola!");
}
if (javaUtilLogger.isDebugEnabled()) {
javaUtilLogger.debug("Mi logger 2");
}
}
}
Te recomiendo mirarte de aquel que vayas a usar, como se configura...
Si te peta el logging, lo mas logico es desactivar el logging...