Skip to content

Instantly share code, notes, and snippets.

@djspiewak
Created July 22, 2014 16:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save djspiewak/816d1298e37055aa1596 to your computer and use it in GitHub Desktop.
Save djspiewak/816d1298e37055aa1596 to your computer and use it in GitHub Desktop.
package com.rr.sinks
package util
import com.typesafe.scalalogging.slf4j.{Logger => SLFLogger}
import org.slf4j.LoggerFactory
import scalaz.concurrent.Task
import scala.reflect.ClassTag
// TODO macroify this stuff
trait LoggerModule {
class Unsafe private[LoggerModule] ()
def UnsafeEnablingEvidence: Unsafe = new Unsafe
def Logger[A: ClassTag]: Logger =
new Logger(SLFLogger(LoggerFactory.getLogger(implicitly[ClassTag[A]].toString)))
class Logger private[LoggerModule] (logger: SLFLogger) {
def unsafeInfo(str: => String)(implicit guard: Unsafe) = /* logger.info(str) */ ()
def unsafeError(str: => String)(implicit guard: Unsafe) = /* logger.error(str) */ ()
def debug(str: => String): Task[RRUnit] = Task delay { /* logger.debug(str) */ () }
def info(str: => String): Task[RRUnit] = Task delay { /* logger.info(str) */ () }
def error(str: => String): Task[RRUnit] = Task delay { /* logger.error(str) */ () }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment