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)
}
While debugging a script, I felt the lack of a simple console logger.
It was a one-off
scala-cliscript, and adding alogback.xmlfile 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: