-- 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