Escrevendo para o erro padrão

Kotlin:
Escrevendo para o erro padrão

Como fazer:

Em Kotlin, escrever no stderr pode ser alcançado usando System.err.println(). Este método é similar a System.out.println(), mas direciona a saída para o fluxo de erro padrão em vez do fluxo de saída padrão.

fun main() {
    System.err.println("Esta é uma mensagem de erro!")
}

Saída de exemplo:

Esta é uma mensagem de erro!

Para aplicações mais estruturadas ou complexas, particularmente aquelas que envolvem frameworks de log como Logback ou SLF4J, você pode configurar loggers para escrever no stderr para certos níveis de log (por exemplo, ERROR).

Usando SLF4J com Logback:

  1. Primeiro, adicione a API SLF4J e a implementação Logback ao seu build.gradle:
dependencies {
    implementation 'org.slf4j:slf4j-api:1.7.30'
    implementation 'ch.qos.logback:logback-classic:1.2.3'
}
  1. Em seguida, configure o Logback (em src/main/resources/logback.xml) para direcionar mensagens de nível de erro para 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. Então, use SLF4J no seu código Kotlin para registrar mensagens de erro:
import org.slf4j.LoggerFactory

fun main() {
    val logger = LoggerFactory.getLogger("ExampleLogger")
    logger.error("Esta é uma mensagem de log de erro!")
}

Saída de exemplo (para stderr):

2023-04-01 12:34:56 [main] ERROR ExampleLogger - Esta é uma mensagem de log de erro!