Registro en aplicaciones Kotlin: mejores prácticas para principiantes

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Registro en aplicaciones Kotlin: mejores prácticas para principiantes

\n\n

El registro no es solo escribir mensajes en un archivo. Es un sistema que ayuda al desarrollador a entender lo que sucede en la aplicación en tiempo real, encontrar errores rápidamente y analizar el comportamiento de los usuarios. En este artículo, analizaremos cómo organizar correctamente el registro en aplicaciones Kotlin, qué bibliotecas usar y qué errores evitar.

\n\n

¿Por qué es necesario el registro?

\n

El registro resuelve varias tareas clave:

\n
    \n
  • Depuración: permite ver la secuencia de llamadas y los valores de las variables sin usar un depurador.
  • \n
  • Monitoreo: ayuda a rastrear el estado de la aplicación en el entorno de producción.
  • \n
  • Auditoría: registra las acciones de los usuarios y los eventos del sistema.
  • \n
  • Rendimiento: con los logs se pueden identificar cuellos de botella y retrasos.
  • \n
\n\n

Bibliotecas populares para registro en Kotlin

\n

En el ecosistema de Kotlin y JVM existen varias soluciones probadas. Veamos las principales:

\n
    \n
  • SLF4J (Simple Logging Facade for Java) — una fachada que no implementa el registro por sí misma, pero proporciona una API unificada para diferentes implementaciones (Logback, Log4j2, etc.).
  • \n
  • Logback — la implementación más popular de SLF4J. Rápida, flexible, con soporte para archivos rotativos.
  • \n
  • Log4j 2 — una biblioteca potente con soporte para registro asíncrono y filtrado.
  • \n
  • Kotlin Logging — un envoltorio conveniente sobre SLF4J que utiliza funciones inline para minimizar la sobrecarga.
  • \n
\n\n

Configuración de Logback en un proyecto Kotlin

\n

Veamos la configuración paso a paso de Logback, la solución más popular para aplicaciones Kotlin/JVM.

\n\n

Paso 1. Agregar dependencias

\n

En el archivo build.gradle.kts agregue:

\n
dependencies {\n    implementation("ch.qos.logback:logback-classic:1.4.14")\n    implementation("io.github.microutils:kotlin-logging-jvm:3.0.5")\n}
\n\n

Paso 2. Crear el archivo de configuración

\n

Cree el archivo src/main/resources/logback.xml:

\n
<configuration>\n    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">\n        <encoder>\n            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>\n        </encoder>\n    </appender>\n\n    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">\n        <file>logs/app.log</file>\n        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\n            <fileNamePattern>logs/app.%d{yyyy-MM-dd}.log</fileNamePattern>\n            <maxHistory>30</maxHistory>\n        </rollingPolicy>\n        <encoder>\n            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>\n        </encoder>\n    </appender>\n\n    <root level="INFO">\n        <appender-ref ref="CONSOLE"/>\n        <appender-ref ref="FILE"/>\n    </root>\n</configuration>
\n

Esta configuración envía los logs a la consola y a un archivo con rotación diaria (los logs se conservan durante 30 días).

\n\n

Paso 3. Uso en el código

\n

Usaremos la biblioteca kotlin-logging:

\n
import mu.KotlinLogging\n\nprivate val logger = KotlinLogging.logger {}\n\nfun main() {\n    logger.info("Aplicación iniciada")\n    logger.debug { "Valor de la variable x = $x" }\n    try {\n        // algún código\n    } catch (e: Exception) {\n        logger.error(e) { "Error al ejecutar la operación" }\n    }\n}
\n\n

Niveles de registro: cuándo usar cada uno

\n

La elección correcta del nivel es la base de logs legibles. En Logback están disponibles los siguientes niveles

Blogs

Book Recommendations