-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | A very simple but efficient logging framework
--   
--   A very simple but efficient logging framework
@package simple-logger
@version 0.1.1

module Control.Logger.Simple

-- | Setup global logging. Wrap your <tt>main</tt> function with this.
withGlobalLogging :: LogConfig -> IO a -> IO a
data LogConfig
LogConfig :: !Maybe FilePath -> !Bool -> LogConfig
[lc_file] :: LogConfig -> !Maybe FilePath
[lc_stderr] :: LogConfig -> !Bool

-- | Set the verbosity level. Messages at our higher than this level are
--   displayed. It defaults to <a>LogDebug</a>.
setLogLevel :: LogLevel -> IO ()
data LogLevel
LogTrace :: LogLevel
LogDebug :: LogLevel
LogInfo :: LogLevel
LogNote :: LogLevel
LogWarn :: LogLevel
LogError :: LogLevel

-- | Log with <a>LogTrace</a> log level
logTrace :: (?callStack :: CallStack) => MonadIO m => Text -> m ()

-- | Log with <a>LogDebug</a> log level
logDebug :: (?callStack :: CallStack) => MonadIO m => Text -> m ()

-- | Log with <a>LogInfo</a> log level
logInfo :: (?callStack :: CallStack) => MonadIO m => Text -> m ()

-- | Log with <a>LogNote</a> log level
logNote :: (?callStack :: CallStack) => MonadIO m => Text -> m ()

-- | Log with <a>LogWarn</a> log level
logWarn :: (?callStack :: CallStack) => MonadIO m => Text -> m ()

-- | Log with <a>LogError</a> log level
logError :: (?callStack :: CallStack) => MonadIO m => Text -> m ()

-- | Log on error level and call <a>fail</a>
logFail :: (?callStack :: CallStack, MonadFail m) => MonadIO m => Text -> m a

-- | Log with <a>LogTrace</a> level when the given expression is evaluated
pureTrace :: (?callStack :: CallStack) => Text -> a -> a

-- | Log with <a>LogDebug</a> level when the given expression is evaluated
pureDebug :: (?callStack :: CallStack) => Text -> a -> a

-- | Log with <a>LogInfo</a> level when the given expression is evaluated
pureInfo :: (?callStack :: CallStack) => Text -> a -> a

-- | Log with <a>LogNote</a> level when the given expression is evaluated
pureNote :: (?callStack :: CallStack) => Text -> a -> a

-- | Log with <a>LogWarn</a> level when the given expression is evaluated
pureWarn :: (?callStack :: CallStack) => Text -> a -> a

-- | Log with <a>LogError</a> level when the given expression is evaluated
pureError :: (?callStack :: CallStack) => Text -> a -> a
showText :: Show a => a -> Text
(<>) :: Semigroup a => a -> a -> a

-- | An adapter to implemend <tt>MonadLogger</tt> instances for custom
--   monad stacks
monadLoggerAdapter :: (ToLogStr msg, MonadIO m) => Loc -> LogSource -> LogLevel -> msg -> m ()

-- | Runs a logging transformer stack using the simple logger as backend
runSimpleLoggingT :: MonadIO m => LoggingT m a -> m a
instance GHC.Classes.Ord Control.Logger.Simple.LogLevel
instance GHC.Read.Read Control.Logger.Simple.LogLevel
instance GHC.Show.Show Control.Logger.Simple.LogLevel
instance GHC.Classes.Eq Control.Logger.Simple.LogLevel
