Logger proviene del propio paquete de log4j. Si usa Logger.getLogger, necesita un paquete jar log4j. De esta manera, solo puede confiar en log4j:
LogFactory proviene del paquete de registro común. Si usa LogFactory.getLog, puede reemplazar log4j con cualquier registrador que implemente la interfaz de registro común y el programa no se verá afectado. El paquete de registro común de Apache es una interfaz de registro universal. A través de esta capa intermedia, puede especificar qué sistema de registro utilizar. Incrementar la flexibilidad del sistema. Si log4j no existe, commons-logging elegirá otras clases de implementación de registros. Esto garantiza que no sea necesario utilizar el archivo de registro log4j en el programa.
Razones para una mayor flexibilidad:
1) Primero, busque su propio archivo de configuración commons-logging.properties en el classpath. Si lo encuentra, use la clase de implementación Log definida en él;
2) Si no se puede encontrar el archivo commons-logging.properties, verifique si la variable de entorno del sistema org.apache.commons.logging.Log está definida. Si la encuentra, use la clase de implementación Log definida por ella;
3) De lo contrario, verifique si hay un paquete Log4j en el classpath. Si lo encuentra, Log4j se usará automáticamente como clase de implementación de registro;
4) De lo contrario, utilice la clase de implementación de registro propia del JDK (la clase de implementación de registro solo está disponible después de JDK1.4);
5) De lo contrario, utilice una clase de implementación de registro simple SimpleLog proporcionada por commons-logging;
Para simplificar la configuración de commons-logging, el archivo de configuración de commons-logging generalmente no se utiliza y las variables de entorno del sistema relacionadas con commons-logging no se configuran. En cambio, el paquete Jar de Log4j simplemente se coloca en classpash. De esta forma, la integración de commons-logging y Log4j se completa de forma muy sencilla.
Según las diferentes propiedades, la información de registro generalmente se divide en diferentes niveles, de menor a mayor: "Depuración (DEBUG)" "Información (INFO)" "Advertencia (WARN)" "Error (ERROR)" "Error fatal (FATAL)) ".
Basado en el modo de operación de registro común:
Copie el código de código de la siguiente manera:
organización del paquete;
importar org.apache.commons.logging.Log;
importar org.apache.log4j.Logger;
La prueba de clase pública extiende TagSupport{
Registro estático público log=LogFactory.getLog(Test.class);
prueba de vacío estático público()
{
log.debug("111");
log.info("125");
log.warn("485");
log.error("error");
}
principal vacío estático público (Cadena [] a)
{
Prueba.prueba();
}
}
Método de operación basado en log4j
Copie el código de código de la siguiente manera:
importar org.apache.log4j.Logger;
importar org.apache.log4j.PropertyConfigurator;
clase pública TestLog4j {
registrador estático registrador = Logger.getLogger(TestLog4j.class);
público estático vacío principal (String args []) {
PropertyConfigurator.configure("log4j.properties");
logger.debug("Aquí hay algo de DEPURACIÓN");
logger.info("Aquí hay INFORMACIÓN");
logger.warn("Aquí hay algunas ADVERTENCIAS");
logger.error("Aquí hay un ERROR");
logger.fatal("Aquí hay algo FATAL");
}
}
commons-logging solo proporciona una capa de empaquetado para Log4j (incluidas otras implementaciones de LOG, por supuesto). La salida del registro específico todavía se transfiere internamente a Log4j para su procesamiento, y log4j irá al directorio de clases de forma predeterminada para encontrar log4j.properties. archivo.