-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Multicast, thread-safe, and fast logger.
--
-- Please see the README on GitHub at
-- https://github.com/kirisaki/caster#readme
@package caster
@version 0.0.1.0
module System.Log.Caster
-- | Log message.
data LogMsg
LogMsg :: LogLevel -> UnixTime -> Builder -> LogMsg
[logMsgLevel] :: LogMsg -> LogLevel
[logMsgTime] :: LogMsg -> UnixTime
[logMsgBuilder] :: LogMsg -> Builder
-- | Connect LogQueue and TChan LogMsg.
broadcastLog :: LogQueue -> LogChan -> IO ()
-- | Queue of LogMsg.
newtype LogQueue
LogQueue :: TQueue LogMsg -> LogQueue
-- | Make new LogQueue
newLogQueue :: IO LogQueue
-- | Channel of LogMsg.
newtype LogChan
LogChan :: TChan LogMsg -> LogChan
-- | Make new LogChan.
newLogChan :: IO LogChan
-- | Formatter.
type Formatter = LogMsg -> Builder
-- | IO function takes LogMsg.
type Listener = LogMsg -> IO ()
-- | Listen LogChan and give the LogMsg to given
-- Listener.
relayLog :: LogChan -> LogLevel -> Listener -> IO ()
-- | Stdout listener.
stdoutListener :: Listener
-- | Stdout listener with Formatter.
stdoutListenerWith :: Formatter -> Listener
-- | Make Listener from Handle
handleListener :: Formatter -> Handle -> Listener
-- | Make Listener flushing buffer after getting LogMsg
handleListenerFlush :: Formatter -> Handle -> Listener
-- | Default log formatter.
defaultFormatter :: Formatter
-- | Log levels. These are matched to syslog.
data LogLevel
LogDebug :: LogLevel
LogInfo :: LogLevel
LogNotice :: LogLevel
LogWarn :: LogLevel
LogError :: LogLevel
LogCritical :: LogLevel
LogAlert :: LogLevel
LogEmergency :: LogLevel
-- | Push a message to LogQueue.
logAs :: (MonadIO m, ToBuilder s) => LogQueue -> LogLevel -> s -> m ()
debug :: (MonadIO m, ToBuilder s) => LogQueue -> s -> m ()
info :: (MonadIO m, ToBuilder s) => LogQueue -> s -> m ()
notice :: (MonadIO m, ToBuilder s) => LogQueue -> s -> m ()
warn :: (MonadIO m, ToBuilder s) => LogQueue -> s -> m ()
err :: (MonadIO m, ToBuilder s) => LogQueue -> s -> m ()
critical :: (MonadIO m, ToBuilder s) => LogQueue -> s -> m ()
alert :: (MonadIO m, ToBuilder s) => LogQueue -> s -> m ()
emergency :: (MonadIO m, ToBuilder s) => LogQueue -> s -> m ()
-- | Types which are able to be converted into Builder
-- Builder toBuilde encodes String and
-- Text as utf-8.
class ToBuilder a
toBuilder :: ToBuilder a => a -> Builder
-- | If you turn OverloadedStrings extension on, GHC can't deduce
-- the type of string literal. This function fix the type to
-- Builder Builder without type annotation.
fix :: Builder -> Builder
-- | Infix version of fix.
($:) :: ToBuilder b => (Builder -> b) -> Builder -> b
infixr 0 $:
-- | Concat ToBuilder strings as Builder Builder.
(<:>) :: (ToBuilder a, ToBuilder b) => a -> b -> Builder
infixr 6 <:>
instance GHC.Classes.Ord System.Log.Caster.LogLevel
instance GHC.Classes.Eq System.Log.Caster.LogLevel
instance GHC.Show.Show System.Log.Caster.LogLevel
instance System.Log.Caster.ToBuilder Data.ByteString.FastBuilder.Internal.Builder
instance System.Log.Caster.ToBuilder GHC.Base.String
instance System.Log.Caster.ToBuilder Data.Text.Internal.Text
instance System.Log.Caster.ToBuilder Data.Text.Internal.Lazy.Text
instance System.Log.Caster.ToBuilder Data.ByteString.Internal.ByteString
instance System.Log.Caster.ToBuilder Data.ByteString.Lazy.Internal.ByteString
instance System.Log.Caster.ToBuilder Data.ByteString.Builder.Internal.Builder
instance GHC.Show.Show a => System.Log.Caster.ToBuilder a