-- 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.3.0
module System.Log.Caster.Core
-- | 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
-- | Terminal listener. Log levels are colored.
terminalListener :: 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
-- | Formatter for term. It provides colored logs.
terminalFormatter :: Formatter
-- | Formatter with specified colors for log levels. Parameters are just
-- FB.Builder, so you can decorate as you like with ansi
-- escaping.
terminalFormatterWith :: Builder -> Builder -> Builder -> Builder -> Builder -> Builder -> Builder -> Builder -> 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
-- | 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.Core.LogLevel
instance GHC.Classes.Eq System.Log.Caster.Core.LogLevel
instance GHC.Show.Show System.Log.Caster.Core.LogLevel
instance System.Log.Caster.Core.ToBuilder Data.ByteString.FastBuilder.Internal.Builder
instance System.Log.Caster.Core.ToBuilder GHC.Base.String
instance System.Log.Caster.Core.ToBuilder Data.Text.Internal.Text
instance System.Log.Caster.Core.ToBuilder Data.Text.Internal.Lazy.Text
instance System.Log.Caster.Core.ToBuilder Data.ByteString.Internal.ByteString
instance System.Log.Caster.Core.ToBuilder Data.ByteString.Lazy.Internal.ByteString
instance System.Log.Caster.Core.ToBuilder Data.ByteString.Builder.Internal.Builder
instance GHC.Show.Show a => System.Log.Caster.Core.ToBuilder a
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
-- | Terminal listener. Log levels are colored.
terminalListener :: 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
-- | Formatter for term. It provides colored logs.
terminalFormatter :: Formatter
-- | Formatter with specified colors for log levels. Parameters are just
-- FB.Builder, so you can decorate as you like with ansi
-- escaping.
terminalFormatterWith :: Builder -> Builder -> Builder -> Builder -> Builder -> Builder -> Builder -> Builder -> 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 <:>
module System.Log.Caster.Monad
-- | 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
-- | Terminal listener. Log levels are colored.
terminalListener :: 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
-- | Formatter for term. It provides colored logs.
terminalFormatter :: Formatter
-- | Formatter with specified colors for log levels. Parameters are just
-- FB.Builder, so you can decorate as you like with ansi
-- escaping.
terminalFormatterWith :: Builder -> Builder -> Builder -> Builder -> Builder -> Builder -> Builder -> Builder -> 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
-- | Logging monad for ReaderT pattern.
class MonadIO m => MonadCaster m
getLogQueue :: MonadCaster m => m LogQueue
logAs :: (MonadCaster m, ToBuilder s) => LogLevel -> s -> m ()
debug :: (MonadCaster m, ToBuilder s) => s -> m ()
info :: (MonadCaster m, ToBuilder s) => s -> m ()
notice :: (MonadCaster m, ToBuilder s) => s -> m ()
warn :: (MonadCaster m, ToBuilder s) => s -> m ()
err :: (MonadCaster m, ToBuilder s) => s -> m ()
critical :: (MonadCaster m, ToBuilder s) => s -> m ()
alert :: (MonadCaster m, ToBuilder s) => s -> m ()
emergency :: (MonadCaster m, ToBuilder s) => 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 <:>