Blammo-2.1.2.0: Batteries-included Structured Logging library
Safe HaskellSafe-Inferred
LanguageHaskell2010

Blammo.Logging.Setup

Synopsis

Documentation

class HasLogger env where Source #

Methods

loggerL :: Lens' env Logger Source #

Instances

Instances details
HasLogger Logger Source # 
Instance details

Defined in Blammo.Logging.Internal.Logger

withLogger :: MonadUnliftIO m => LogSettings -> (Logger -> m a) -> m a Source #

Initialize logging, pass a Logger to the callback, and clean up at the end

Applications should avoid calling this more than once in their lifecycle.

runLoggerLoggingT :: (MonadUnliftIO m, HasLogger env) => env -> LoggingT m a -> m a Source #

Initialize logging, pass a Logger to the callback, and clean up at the end

Applications should avoid calling this more than once in their lifecycle.

data LoggingT (m :: Type -> Type) a #

Monad transformer that adds a new logging function.

Since: monad-logger-0.2.2

Instances

Instances details
MonadTransControl LoggingT 
Instance details

Defined in Control.Monad.Logger

Associated Types

type StT LoggingT a #

Methods

liftWith :: Monad m => (Run LoggingT -> m a) -> LoggingT m a #

restoreT :: Monad m => m (StT LoggingT a) -> LoggingT m a #

MonadTrans LoggingT 
Instance details

Defined in Control.Monad.Logger

Methods

lift :: Monad m => m a -> LoggingT m a #

MonadRWS r w s m => MonadRWS r w s (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

MonadBaseControl b m => MonadBaseControl b (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

Associated Types

type StM (LoggingT m) a #

Methods

liftBaseWith :: (RunInBase (LoggingT m) b -> b a) -> LoggingT m a #

restoreM :: StM (LoggingT m) a -> LoggingT m a #

MonadAccum w m => MonadAccum w (LoggingT m)

Since: monad-logger-0.3.41

Instance details

Defined in Control.Monad.Logger

Methods

look :: LoggingT m w #

add :: w -> LoggingT m () #

accum :: (w -> (a, w)) -> LoggingT m a #

MonadError e m => MonadError e (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

Methods

throwError :: e -> LoggingT m a #

catchError :: LoggingT m a -> (e -> LoggingT m a) -> LoggingT m a #

MonadReader r m => MonadReader r (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

Methods

ask :: LoggingT m r #

local :: (r -> r) -> LoggingT m a -> LoggingT m a #

reader :: (r -> a) -> LoggingT m a #

MonadState s m => MonadState s (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

Methods

get :: LoggingT m s #

put :: s -> LoggingT m () #

state :: (s -> (a, s)) -> LoggingT m a #

MonadWriter w m => MonadWriter w (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

Methods

writer :: (a, w) -> LoggingT m a #

tell :: w -> LoggingT m () #

listen :: LoggingT m a -> LoggingT m (a, w) #

pass :: LoggingT m (a, w -> w) -> LoggingT m a #

MonadBase b m => MonadBase b (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

Methods

liftBase :: b α -> LoggingT m α #

MonadFail m => MonadFail (LoggingT m)

Since: monad-logger-0.3.30

Instance details

Defined in Control.Monad.Logger

Methods

fail :: String -> LoggingT m a #

MonadIO m => MonadIO (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

Methods

liftIO :: IO a -> LoggingT m a #

Alternative m => Alternative (LoggingT m)

Since: monad-logger-0.3.40

Instance details

Defined in Control.Monad.Logger

Methods

empty :: LoggingT m a #

(<|>) :: LoggingT m a -> LoggingT m a -> LoggingT m a #

some :: LoggingT m a -> LoggingT m [a] #

many :: LoggingT m a -> LoggingT m [a] #

Applicative m => Applicative (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

Methods

pure :: a -> LoggingT m a #

(<*>) :: LoggingT m (a -> b) -> LoggingT m a -> LoggingT m b #

liftA2 :: (a -> b -> c) -> LoggingT m a -> LoggingT m b -> LoggingT m c #

(*>) :: LoggingT m a -> LoggingT m b -> LoggingT m b #

(<*) :: LoggingT m a -> LoggingT m b -> LoggingT m a #

Functor m => Functor (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

Methods

fmap :: (a -> b) -> LoggingT m a -> LoggingT m b #

(<$) :: a -> LoggingT m b -> LoggingT m a #

Monad m => Monad (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

Methods

(>>=) :: LoggingT m a -> (a -> LoggingT m b) -> LoggingT m b #

(>>) :: LoggingT m a -> LoggingT m b -> LoggingT m b #

return :: a -> LoggingT m a #

MonadActive m => MonadActive (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

MonadCatch m => MonadCatch (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

Methods

catch :: (HasCallStack, Exception e) => LoggingT m a -> (e -> LoggingT m a) -> LoggingT m a #

MonadMask m => MonadMask (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

Methods

mask :: HasCallStack => ((forall a. LoggingT m a -> LoggingT m a) -> LoggingT m b) -> LoggingT m b #

uninterruptibleMask :: HasCallStack => ((forall a. LoggingT m a -> LoggingT m a) -> LoggingT m b) -> LoggingT m b #

generalBracket :: HasCallStack => LoggingT m a -> (a -> ExitCase b -> LoggingT m c) -> (a -> LoggingT m b) -> LoggingT m (b, c) #

MonadThrow m => MonadThrow (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

Methods

throwM :: (HasCallStack, Exception e) => e -> LoggingT m a #

MonadIO m => MonadLogger (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

Methods

monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> LoggingT m () #

MonadIO m => MonadLoggerIO (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

Methods

askLoggerIO :: LoggingT m (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) #

MonadCont m => MonadCont (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

Methods

callCC :: ((a -> LoggingT m b) -> LoggingT m a) -> LoggingT m a #

MonadResource m => MonadResource (LoggingT m) 
Instance details

Defined in Control.Monad.Logger

Methods

liftResourceT :: ResourceT IO a -> LoggingT m a #

MonadUnliftIO m => MonadUnliftIO (LoggingT m)

Since: monad-logger-0.3.26

Instance details

Defined in Control.Monad.Logger

Methods

withRunInIO :: ((forall a. LoggingT m a -> IO a) -> IO b) -> LoggingT m b #

(Applicative m, Monoid a) => Monoid (LoggingT m a) 
Instance details

Defined in Control.Monad.Logger

Methods

mempty :: LoggingT m a #

mappend :: LoggingT m a -> LoggingT m a -> LoggingT m a #

mconcat :: [LoggingT m a] -> LoggingT m a #

(Applicative m, Semigroup a) => Semigroup (LoggingT m a) 
Instance details

Defined in Control.Monad.Logger

Methods

(<>) :: LoggingT m a -> LoggingT m a -> LoggingT m a #

sconcat :: NonEmpty (LoggingT m a) -> LoggingT m a #

stimes :: Integral b => b -> LoggingT m a -> LoggingT m a #

type StT LoggingT a 
Instance details

Defined in Control.Monad.Logger

type StT LoggingT a = a
type StM (LoggingT m) a 
Instance details

Defined in Control.Monad.Logger

type StM (LoggingT m) a = StM m a

newtype WithLogger env m a Source #

Useful with the DerivingVia language extension to derive MonadLogger for your application monad

Constructors

WithLogger (ReaderT env m a) 

Instances

Instances details
Monad m => MonadReader env (WithLogger env m) Source # 
Instance details

Defined in Blammo.Logging.WithLogger

Methods

ask :: WithLogger env m env #

local :: (env -> env) -> WithLogger env m a -> WithLogger env m a #

reader :: (env -> a) -> WithLogger env m a #

MonadIO m => MonadIO (WithLogger env m) Source # 
Instance details

Defined in Blammo.Logging.WithLogger

Methods

liftIO :: IO a -> WithLogger env m a #

Applicative m => Applicative (WithLogger env m) Source # 
Instance details

Defined in Blammo.Logging.WithLogger

Methods

pure :: a -> WithLogger env m a #

(<*>) :: WithLogger env m (a -> b) -> WithLogger env m a -> WithLogger env m b #

liftA2 :: (a -> b -> c) -> WithLogger env m a -> WithLogger env m b -> WithLogger env m c #

(*>) :: WithLogger env m a -> WithLogger env m b -> WithLogger env m b #

(<*) :: WithLogger env m a -> WithLogger env m b -> WithLogger env m a #

Functor m => Functor (WithLogger env m) Source # 
Instance details

Defined in Blammo.Logging.WithLogger

Methods

fmap :: (a -> b) -> WithLogger env m a -> WithLogger env m b #

(<$) :: a -> WithLogger env m b -> WithLogger env m a #

Monad m => Monad (WithLogger env m) Source # 
Instance details

Defined in Blammo.Logging.WithLogger

Methods

(>>=) :: WithLogger env m a -> (a -> WithLogger env m b) -> WithLogger env m b #

(>>) :: WithLogger env m a -> WithLogger env m b -> WithLogger env m b #

return :: a -> WithLogger env m a #

(MonadIO m, HasLogger env) => MonadLogger (WithLogger env m) Source # 
Instance details

Defined in Blammo.Logging.WithLogger

Methods

monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> WithLogger env m () #

(MonadIO m, HasLogger env) => MonadLoggerIO (WithLogger env m) Source # 
Instance details

Defined in Blammo.Logging.WithLogger

Methods

askLoggerIO :: WithLogger env m (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) #

runWithLogger :: env -> WithLogger env m a -> m a Source #

newLoggerEnv :: MonadIO m => m Logger Source #

Construct a Logger configured via environment variables

withLoggerEnv :: MonadUnliftIO m => (Logger -> m a) -> m a Source #

Initialize logging (configured via environment variables), pass a Logger to the callback, and clean up at the end

Applications should avoid calling this more than once in their lifecycle.

runSimpleLoggingT :: MonadUnliftIO m => LoggingT m a -> m a Source #

Construct a Logger configured via environment variables and use it