Kotlin:
Pisanie do standardowego błędu
Jak to zrobić:
W Kotlinie, zapis do stderr można osiągnąć za pomocą System.err.println()
. Ta metoda jest podobna do System.out.println()
, ale kieruje wyjście do strumienia błędu standardowego, a nie do standardowego strumienia wyjściowego.
fun main() {
System.err.println("To jest komunikat o błędzie!")
}
Przykładowe wyjście:
To jest komunikat o błędzie!
W przypadku bardziej złożonych lub strukturalnych aplikacji, szczególnie tych wykorzystujących frameworki logowania takie jak Logback czy SLF4J, można skonfigurować loggery do zapisywania do stderr dla określonych poziomów logowania (np. ERROR).
Używanie SLF4J z Logback:
- Najpierw, dodaj API SLF4J i implementację Logback do pliku
build.gradle
:
dependencies {
implementation 'org.slf4j:slf4j-api:1.7.30'
implementation 'ch.qos.logback:logback-classic:1.2.3'
}
- Następnie, skonfiguruj Logback (w
src/main/resources/logback.xml
) aby kierować komunikaty na poziomie błędu do 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>
- Następnie, użyj SLF4J w swoim kodzie Kotlin do logowania komunikatów o błędach:
import org.slf4j.LoggerFactory
fun main() {
val logger = LoggerFactory.getLogger("ExampleLogger")
logger.error("To jest komunikat logowania błędu!")
}
Przykładowe wyjście (do stderr):
2023-04-01 12:34:56 [main] ERROR ExampleLogger - To jest komunikat logowania błędu!