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

net.maizegenetics.util.LoggingUtils.kt Maven / Gradle / Ivy

@file:JvmName("LoggingUtilsKt")

package net.maizegenetics.util

import org.apache.logging.log4j.Level
import org.apache.logging.log4j.LogManager
import org.apache.logging.log4j.core.LoggerContext
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory

private val myOriginalOutputStream = System.out
private val myOriginalErrStream = System.err

/**
 * Sends all logging messages (including log4j) to standard out. The logging
 * level will be DEBUG.
 */
fun setupDebugLogging() {
    System.setOut(myOriginalOutputStream)
    System.setErr(myOriginalErrStream)
    sendDebugLog4jToStdout()
}

fun sendDebugLog4jToStdout() {

    val context = LogManager.getContext(false) as LoggerContext

    val builder = ConfigurationBuilderFactory.newConfigurationBuilder()

    val console = builder.newAppender("stdout", "Console")

    val standard = builder.newLayout("PatternLayout")
    standard.addAttribute("pattern", "[%t] %level %c{10} - %msg%n%throwable")

    console.add(standard)

    builder.add(console)

    val rootLogger = builder.newRootLogger(Level.DEBUG)
    rootLogger.add(builder.newAppenderRef("stdout"))
    builder.add(rootLogger)

    val configuration = builder.build()
    context.start(configuration)

}

fun sendLog4jToStdout() {

    val context = LogManager.getContext(false) as LoggerContext

    val builder = ConfigurationBuilderFactory.newConfigurationBuilder()

    val console = builder.newAppender("stdout", "Console")

    val standard = builder.newLayout("PatternLayout")
    standard.addAttribute("pattern", "[%t] %level %c{10} - %msg%n%throwable")

    console.add(standard)

    builder.add(console)

    val rootLogger = builder.newRootLogger(Level.INFO)
    rootLogger.add(builder.newAppenderRef("stdout"))
    builder.add(rootLogger)

    val configuration = builder.build()
    context.start(configuration)

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy