การเขียนไปยังข้อผิดพลาดมาตรฐาน

Kotlin:
การเขียนไปยังข้อผิดพลาดมาตรฐาน

วิธีทำ:

ใน Kotlin, การเขียนไปยัง stderr สามารถทำได้โดยใช้ System.err.println() วิธีนี้คล้ายกับ System.out.println() แต่เป็นการส่งการแสดงผลไปยังกระแสข้อผิดพลาดมาตรฐานแทนที่จะเป็นกระแสการแสดงผลมาตรฐาน

fun main() {
    System.err.println("นี่คือข้อความแสดงข้อผิดพลาด!")
}

ตัวอย่างผลลัพธ์:

นี่คือข้อความแสดงข้อผิดพลาด!

สำหรับแอปพลิเคชันที่มีโครงสร้างมากขึ้นหรือซับซ้อนเป็นพิเศษ โดยเฉพาะอย่างยิ่งที่เกี่ยวข้องกับเฟรมเวิร์กการบันทึกข้อมูลเช่น Logback หรือ SLF4J คุณสามารถกำหนดค่า logger เพื่อเขียนไปยัง stderr สำหรับระดับบันทึกบางประเภท (เช่น ERROR)

การใช้ SLF4J กับ Logback:

  1. ขั้นแรก, เพิ่ม SLF4J API และการดำเนินการของ Logback ลงใน build.gradle ของคุณ:
dependencies {
    implementation 'org.slf4j:slf4j-api:1.7.30'
    implementation 'ch.qos.logback:logback-classic:1.2.3'
}
  1. ต่อไป, กำหนดค่า Logback (ใน src/main/resources/logback.xml) เพื่อส่งข้อความข้อผิดพลาดไปยัง 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. จากนั้น, ใช้ SLF4J ในโค้ด Kotlin ของคุณเพื่อบันทึกข้อความแสดงข้อผิดพลาด:
import org.slf4j.LoggerFactory

fun main() {
    val logger = LoggerFactory.getLogger("ExampleLogger")
    logger.error("นี่คือข้อความบันทึกข้อผิดพลาด!")
}

ตัวอย่างผลลัพธ์ (ไปที่ stderr):

2023-04-01 12:34:56 [main] ERROR ExampleLogger - นี่คือข้อความบันทึกข้อผิดพลาด!