Scrivere sull'errore standard

Kotlin:
Scrivere sull'errore standard

Come fare:

In Kotlin, scrivere su stderr può essere realizzato utilizzando System.err.println(). Questo metodo è simile a System.out.println(), ma indirizza l’output al flusso di errore standard piuttosto che al flusso di output standard.

fun main() {
    System.err.println("Questo è un messaggio di errore!")
}

Output di esempio:

Questo è un messaggio di errore!

Per applicazioni più strutturate o complesse, in particolare quelle che coinvolgono framework di logging come Logback o SLF4J, è possibile configurare logger per scrivere su stderr per determinati livelli di log (ad esempio, ERROR).

Utilizzando SLF4J con Logback:

  1. Prima, aggiungi l’API SLF4J e l’implementazione Logback nel tuo build.gradle:
dependencies {
    implementation 'org.slf4j:slf4j-api:1.7.30'
    implementation 'ch.qos.logback:logback-classic:1.2.3'
}
  1. Successivamente, configura Logback (in src/main/resources/logback.xml) per indirizzare i messaggi di livello errore su 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. Quindi, usa SLF4J nel tuo codice Kotlin per registrare i messaggi di errore:
import org.slf4j.LoggerFactory

fun main() {
    val logger = LoggerFactory.getLogger("ExampleLogger")
    logger.error("Questo è un messaggio di log di errore!")
}

Output di esempio (su stderr):

2023-04-01 12:34:56 [main] ERROR ExampleLogger - Questo è un messaggio di log di errore!