Kotlin:
Escribiendo en el error estándar

Cómo hacerlo:

En Kotlin, escribir en stderr se puede lograr utilizando System.err.println(). Este método es similar a System.out.println(), pero dirige la salida al flujo de error estándar en lugar del flujo de salida estándar.

fun main() {
    System.err.println("¡Este es un mensaje de error!")
}

Salida de muestra:

¡Este es un mensaje de error!

Para aplicaciones más estructuradas o complejas, particularmente aquellas que involucran marcos de registro como Logback o SLF4J, puedes configurar los registradores para escribir en stderr para ciertos niveles de registro (por ejemplo, ERROR).

Usando SLF4J con Logback:

  1. Primero, agrega la API SLF4J y la implementación de Logback a tu build.gradle:
dependencies {
    implementation 'org.slf4j:slf4j-api:1.7.30'
    implementation 'ch.qos.logback:logback-classic:1.2.3'
}
  1. A continuación, configura Logback (en src/main/resources/logback.xml) para dirigir mensajes de nivel de error a stderr:
<configuration>
    <appender name="STDERR" class="ch.qos.logback.core.ConsoleAppender">
        <target>System.err</target>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    
    <root level="error">
        <appender-ref ref="STDERR" />
    </root>
</configuration>
  1. Luego, utiliza SLF4J en tu código Kotlin para registrar mensajes de error:
import org.slf4j.LoggerFactory

fun main() {
    val logger = LoggerFactory.getLogger("EjemploLogger")
    logger.error("¡Este es un mensaje de registro de error!")
}

Salida de muestra (a stderr):

2023-04-01 12:34:56 [main] ERROR EjemploLogger - ¡Este es un mensaje de registro de error!