SystemStreamHandler.kt

  1. package com.hexagontk.jul

  2. import java.io.PrintStream
  3. import java.util.logging.Formatter
  4. import java.util.logging.Level
  5. import java.util.logging.LogRecord
  6. import java.util.logging.StreamHandler

  7. /**
  8.  * Create a StreamHandler with a given [Formatter].
  9.  *
  10.  * @param handlerFormatter Formatter used by the log handler.
  11.  */
  12. internal class SystemStreamHandler(
  13.     handlerFormatter: Formatter,
  14.     stream: PrintStream = System.out
  15. ) : StreamHandler() {

  16.     override fun publish(record: LogRecord) {
  17.         super.publish(record)
  18.         flush()
  19.     }

  20.     init {
  21.         setOutputStream(stream)
  22.         formatter = handlerFormatter
  23.         level = Level.ALL
  24.     }
  25. }