-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Structured logging solution with multiple backends
--
@package log
@version 0.2.1
module Log.Data
-- | Available log levels.
data LogLevel
LogAttention :: LogLevel
LogInfo :: LogLevel
LogTrace :: LogLevel
showLogLevel :: LogLevel -> Text
readLogLevel :: Text -> LogLevel
-- | Represents message to be logged.
data LogMessage
LogMessage :: !Text -> ![Text] -> !UTCTime -> !LogLevel -> !Text -> !Value -> LogMessage
-- | Component of an application.
lmComponent :: LogMessage -> !Text
-- | Aplication log domain.
lmDomain :: LogMessage -> ![Text]
-- | Time of log.
lmTime :: LogMessage -> !UTCTime
-- | Log level.
lmLevel :: LogMessage -> !LogLevel
-- | Message to be logged.
lmMessage :: LogMessage -> !Text
-- | Additional data associated with the message.
lmData :: LogMessage -> !Value
showLogMessage :: LogMessage -> Text
instance Bounded LogLevel
instance Eq LogLevel
instance Ord LogLevel
instance Show LogLevel
instance Eq LogMessage
instance Show LogMessage
instance NFData LogMessage
instance ToJSON LogMessage
instance NFData LogLevel
module Log.Logger
-- | Opaque data type representing logger.
data Logger
-- | Make Logger that consumes one queued message at a time.
mkLogger :: Text -> (LogMessage -> IO ()) -> IO Logger
-- | Make Logger that consumes all queued messages once per second.
mkBulkLogger :: Text -> ([LogMessage] -> IO ()) -> IO Logger
-- | Execute logger to serialize a LogMessage.
execLogger :: Logger -> LogMessage -> IO ()
-- | Wait until logs stored in an internal queue are serialized.
waitForLogger :: Logger -> IO ()
instance Monoid Logger
module Log.Backend.PostgreSQL
-- | Create logger that inserts log messages into PostgreSQL database.
pgLogger :: ConnectionSource -> IO Logger
module Log.Backend.StandardOutput
-- | Create logger that prints messages to standard output.
stdoutLogger :: IO Logger
module Log.Class
-- | This is the simplest representation of UTC. It consists of the day
-- number, and a time offset from midnight. Note that if a day has a leap
-- second added to it, it will have 86401 seconds.
data UTCTime :: *
-- | Class of monads which carry the notion of the current time.
class Monad m => MonadTime (m :: * -> *)
currentTime :: MonadTime m => m UTCTime
-- | Represents the family of monads with logging capabilities.
class MonadTime m => MonadLog m
logMessage :: MonadLog m => UTCTime -> LogLevel -> Text -> Value -> m ()
localData :: MonadLog m => [Pair] -> m a -> m a
localDomain :: MonadLog m => Text -> m a -> m a
logAttention :: MonadLog m => String -> Value -> m ()
logInfo :: MonadLog m => String -> Value -> m ()
logTrace :: MonadLog m => String -> Value -> m ()
logAttention_ :: MonadLog m => String -> m ()
logInfo_ :: MonadLog m => String -> m ()
logTrace_ :: MonadLog m => String -> m ()
module Log.Monad
-- | Opaque data type representing logger.
data Logger
-- | LogT environment.
data LoggerEnv
LoggerEnv :: !Logger -> !Text -> ![Text] -> ![Pair] -> LoggerEnv
leLogger :: LoggerEnv -> !Logger
leComponent :: LoggerEnv -> !Text
leDomain :: LoggerEnv -> ![Text]
leData :: LoggerEnv -> ![Pair]
type InnerLogT = ReaderT LoggerEnv
-- | Monad transformer that adds logging capabilities to the underlying
-- monad.
newtype LogT m a
LogT :: InnerLogT m a -> LogT m a
unLogT :: LogT m a -> InnerLogT m a
runLogT :: Text -> Logger -> LogT m a -> m a
mapLogT :: (m a -> n b) -> LogT m a -> LogT n b
instance Applicative m => Applicative (LogT m)
instance Functor m => Functor (LogT m)
instance Monad m => Monad (LogT m)
instance MonadBase b m => MonadBase b (LogT m)
instance MonadCatch m => MonadCatch (LogT m)
instance MonadIO m => MonadIO (LogT m)
instance MonadMask m => MonadMask (LogT m)
instance MonadThrow m => MonadThrow (LogT m)
instance MonadTrans LogT
instance (MonadBase IO m, MonadTime m) => MonadLog (LogT m)
instance MonadBaseControl b m => MonadBaseControl b (LogT m)
instance MonadTransControl LogT
module Log.Class.Instances
instance [overlap ok] (MonadLog m, Monad (t m), MonadTransControl t) => MonadLog (t m)
module Log
-- | Create a Value from a list of name/value Pairs. If
-- duplicate keys arise, earlier keys and their associated values win.
object :: [Pair] -> Value
-- | Construct a Pair from a key and a value.
(.=) :: ToJSON a => Text -> a -> Pair