All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jetbrains.kotlinx.jupyter.config.Logging.kt Maven / Gradle / Ivy

Go to download

Implementation of REPL compiler and preprocessor for Jupyter dialect of Kotlin (IDE-compatible)

There is a newer version: 0.12.0-333
Show newest version
package org.jetbrains.kotlinx.jupyter.config

import org.jetbrains.kotlinx.jupyter.exceptions.renderException
import org.jetbrains.kotlinx.jupyter.streams.KernelStreams
import org.slf4j.Logger
import java.io.PrintStream

fun Logger.errorForUser(
    stream: PrintStream = KernelStreams.err,
    message: String,
    throwable: Throwable? = null,
) {
    if (throwable == null) {
        error(message)
    } else {
        error(message, throwable)
    }

    if (message.isNotEmpty()) {
        stream.print("[ERROR] ")
        stream.println(message)
    }
    throwable?.let { stream.println(it.renderException()) }
    stream.flush()
}

fun  Logger.catchAll(
    stream: PrintStream = KernelStreams.err,
    msg: String = "",
    body: () -> T,
): T? =
    try {
        body()
    } catch (e: Throwable) {
        this.errorForUser(stream, msg, e)
        null
    }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy