Open
Description
While debugging a script, I felt the lack of a simple console logger.
It was a one-off scala-cli
script, and adding a logback.xml
file with the appropriate cli arguments seemed like a huge hassle just to get logs dumped to standard error.
I ended up adding this to my script, which did the trick, but was annoying and it seems like this could be provided as part of the library as it does not require any additional dependencies:
class StdOutLogger[F[_]: Apply](console: Console[F]) extends Logger[F] {
override def error(t: Throwable)(message: => String): F[Unit] =
console.errorln(message) *> console.println(t)
override def warn(t: Throwable)(message: => String): F[Unit] =
console.errorln(message) *> console.println(t)
override def info(t: Throwable)(message: => String): F[Unit] =
console.errorln(message) *> console.println(t)
override def debug(t: Throwable)(message: => String): F[Unit] =
console.errorln(message) *> console.println(t)
override def trace(t: Throwable)(message: => String): F[Unit] =
console.errorln(message) *> console.println(t)
override def error(message: => String): F[Unit] =
console.errorln(message)
override def warn(message: => String): F[Unit] =
console.errorln(message)
override def info(message: => String): F[Unit] =
console.errorln(message)
override def debug(message: => String): F[Unit] =
console.errorln(message)
override def trace(message: => String): F[Unit] =
console.errorln(message)
}
Metadata
Metadata
Assignees
Labels
No labels