Quickstart al uso de SLF4J con Logback.
-
SLF4J: Simple Logging Facade for Java es una interfaz de logging que actúa como una capa de abstracción entre el código de una aplicación Java y las distintas bibliotecas de logging disponibles (como Logback, Log4j, java.util.logging, etc). Su propósito es permitir que el desarrollador escriba código desacoplado de la implementación específica de logging, facilitando así cambiarla sin modificar el código fuente.
-
Logback: Logback es una biblioteca de logging para aplicaciones Java, diseñada como sucesora de Log4j 1 por el mismo autor, Ceki Gülcü, y es la implementación recomendada para usar con SLF4J. Ofrece un alto rendimiento, configuración flexible mediante archivos XML, soporte para rotación de archivos, filtros por nivel de log y manejo de contextos (MDC).
-
Archivo de configuración logback.xml
-
Puede existir un archivo logback-test.xml para testing
[versions]
logback = "1.5.18"
slf4j = "2.0.17"
[libraries]
logback-core = { module = "ch.qos.logback:logback-core", version.ref = "logback" }
logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" }
dependencies {
implementation(libs.logback.core)
implementation(libs.logback.classic)
implementation(libs.slf4j.api)
}
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Interna {
private static final Logger logger = LoggerFactory.getLogger(Interna.class);
public void hacerAlgo() {
logger.trace("message type: trace");
logger.debug("message type: debug");
logger.info("message type: info");
logger.warn("message type: warn");
logger.error("message type: error");
}
}
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%level [%thread] %logger{10} %kvp %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>aprendiendo-logging.log</file>
<encoder>
<pattern>%date %level [%thread] %logger{10} [%file:%line] -%kvp- %msg%n</pattern>
</encoder>
</appender>
<root level="TRACE">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
<logger name="cl.hcslearning.logging.inner" level="WARN">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</logger>
</configuration>