Kotlin:
Skriva till standardfel

Hur man gör:

I Kotlin kan skrivning till stderr uppnås med System.err.println(). Denna metod är lik System.out.println() men dirigerar utdatan till standardfelströmmen istället för standardutdataströmmen.

fun main() {
    System.err.println("Detta är ett felmeddelande!")
}

Exempel på utdata:

Detta är ett felmeddelande!

För mer strukturerade eller komplexa applikationer, särskilt de som involverar loggningsramverk som Logback eller SLF4J, kan du konfigurera loggarna att skriva till stderr för vissa loggnivåer (t.ex. ERROR).

Använda SLF4J med Logback:

  1. Först, lägg till SLF4J API:t och Logback-implementationen i din build.gradle:
dependencies {
    implementation 'org.slf4j:slf4j-api:1.7.30'
    implementation 'ch.qos.logback:logback-classic:1.2.3'
}
  1. Nästa, konfigurera Logback (i src/main/resources/logback.xml) för att styra meddelanden på fel-nivå till 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. Använd sedan SLF4J i din Kotlin-kod för att logga felmeddelanden:
import org.slf4j.LoggerFactory

fun main() {
    val logger = LoggerFactory.getLogger("ExampleLogger")
    logger.error("Detta är ett felloggmeddelande!")
}

Exempel på utdata (till stderr):

2023-04-01 12:34:56 [main] ERROR ExampleLogger - Detta är ett felloggmeddelande!