{-# LANGUAGE OverloadedStrings #-} module Yam.Logger.MonadLogger( toMonadLogger , runLoggingT ) where import Yam.Import import Yam.Logger import Control.Monad.Logger type LogFunc = Loc -> LogSource -> LogLevel -> LogStr -> IO () toMonadLogger :: (Yam.Logger.MonadLogger m) => m LogFunc toMonadLogger = mkLogger <$> loggerConfig where toRank LevelDebug = DEBUG toRank LevelInfo = INFO toRank LevelWarn = WARN toRank LevelError = ERROR toRank _ = INFO mkLogger :: LoggerConfig -> LogFunc mkLogger context _ name level msg = runReaderT (withLoggerName name $ logL (toRank level) (msg <> "\n")) context