simple-log-0.9.11: Simple log for Haskell

Safe HaskellNone
LanguageHaskell2010

System.Log.Simple.Base

Synopsis

Documentation

data Level #

Level of message

Constructors

Trace 
Debug 
Info 
Warning 
Error 
Fatal 
Instances
Bounded Level # 
Instance details

Defined in System.Log.Simple.Base

Enum Level # 
Instance details

Defined in System.Log.Simple.Base

Eq Level # 
Instance details

Defined in System.Log.Simple.Base

Methods

(==) :: Level -> Level -> Bool #

(/=) :: Level -> Level -> Bool #

Ord Level # 
Instance details

Defined in System.Log.Simple.Base

Methods

compare :: Level -> Level -> Ordering #

(<) :: Level -> Level -> Bool #

(<=) :: Level -> Level -> Bool #

(>) :: Level -> Level -> Bool #

(>=) :: Level -> Level -> Bool #

max :: Level -> Level -> Level #

min :: Level -> Level -> Level #

Read Level # 
Instance details

Defined in System.Log.Simple.Base

Show Level # 
Instance details

Defined in System.Log.Simple.Base

Methods

showsPrec :: Int -> Level -> ShowS #

show :: Level -> String #

showList :: [Level] -> ShowS #

Default Level # 
Instance details

Defined in System.Log.Simple.Base

Methods

def :: Level #

Formattable Level # 
Instance details

Defined in System.Log.Simple.Base

level :: Text -> Maybe Level #

Parse level

level_ :: Text -> Level #

Parse level, failing on invalid input

newtype Component #

Component — each one have separate log scopes and can have different politics Child component's root politics inherits its parent root politics Component name parts stored in reverse order

Constructors

Component 

Fields

Instances
Eq Component # 
Instance details

Defined in System.Log.Simple.Base

Ord Component # 
Instance details

Defined in System.Log.Simple.Base

Read Component # 
Instance details

Defined in System.Log.Simple.Base

Show Component # 
Instance details

Defined in System.Log.Simple.Base

IsString Component # 
Instance details

Defined in System.Log.Simple.Base

Semigroup Component # 
Instance details

Defined in System.Log.Simple.Base

Monoid Component # 
Instance details

Defined in System.Log.Simple.Base

NFData Component # 
Instance details

Defined in System.Log.Simple.Base

Methods

rnf :: Component -> () #

Formattable Component # 
Instance details

Defined in System.Log.Simple.Base

newtype Scope #

Log scope, also stored in reverse order

Constructors

Scope 

Fields

Instances
Eq Scope # 
Instance details

Defined in System.Log.Simple.Base

Methods

(==) :: Scope -> Scope -> Bool #

(/=) :: Scope -> Scope -> Bool #

Ord Scope # 
Instance details

Defined in System.Log.Simple.Base

Methods

compare :: Scope -> Scope -> Ordering #

(<) :: Scope -> Scope -> Bool #

(<=) :: Scope -> Scope -> Bool #

(>) :: Scope -> Scope -> Bool #

(>=) :: Scope -> Scope -> Bool #

max :: Scope -> Scope -> Scope #

min :: Scope -> Scope -> Scope #

Read Scope # 
Instance details

Defined in System.Log.Simple.Base

Show Scope # 
Instance details

Defined in System.Log.Simple.Base

Methods

showsPrec :: Int -> Scope -> ShowS #

show :: Scope -> String #

showList :: [Scope] -> ShowS #

IsString Scope # 
Instance details

Defined in System.Log.Simple.Base

Methods

fromString :: String -> Scope #

Semigroup Scope # 
Instance details

Defined in System.Log.Simple.Base

Methods

(<>) :: Scope -> Scope -> Scope #

sconcat :: NonEmpty Scope -> Scope #

stimes :: Integral b => b -> Scope -> Scope #

Monoid Scope # 
Instance details

Defined in System.Log.Simple.Base

Methods

mempty :: Scope #

mappend :: Scope -> Scope -> Scope #

mconcat :: [Scope] -> Scope #

NFData Scope # 
Instance details

Defined in System.Log.Simple.Base

Methods

rnf :: Scope -> () #

Formattable Scope # 
Instance details

Defined in System.Log.Simple.Base

data Message #

Log message

Instances
Read Message # 
Instance details

Defined in System.Log.Simple.Base

Show Message # 
Instance details

Defined in System.Log.Simple.Base

NFData Message # 
Instance details

Defined in System.Log.Simple.Base

Methods

rnf :: Message -> () #

type Converter a = Message -> a #

type Consumer a = ContT () IO (a -> IO ()) #

Returns function which accepts consumed value

consumer :: (((a -> IO ()) -> IO ()) -> IO ()) -> Consumer a #

Make consumer

type LogHandler = Consumer Message #

Message handler

data LogConfig #

Constructors

LogConfig 
Instances
Show LogConfig # 
Instance details

Defined in System.Log.Simple.Base

Default LogConfig # 
Instance details

Defined in System.Log.Simple.Base

Methods

def :: LogConfig #

Ixed LogConfig # 
Instance details

Defined in System.Log.Simple.Base

At LogConfig # 
Instance details

Defined in System.Log.Simple.Base

type Index LogConfig # 
Instance details

Defined in System.Log.Simple.Base

type IxValue LogConfig # 
Instance details

Defined in System.Log.Simple.Base

defCfg :: LogConfig #

Default log config — info level

logCfg :: [(Component, Level)] -> LogConfig #

Make log config by list of components and levels

componentCfg :: Component -> Lens' LogConfig (Maybe Level) #

Component config level lens

componentLevel :: LogConfig -> Component -> Level #

Get politics for specified component

data Log #

Log

Constructors

Log 

Fields

Instances
Monad m => MonadReader Log (LogT m) # 
Instance details

Defined in System.Log.Simple.Monad

Methods

ask :: LogT m Log #

local :: (Log -> Log) -> LogT m a -> LogT m a #

reader :: (Log -> a) -> LogT m a #

newLog :: LogConfig -> [LogHandler] -> IO Log #

Create log, returns root logger for root component

Messages from distinct threads and components are splitted in several chans, where they are processed, and then messages combined back and sent to log-thread

rootLog :: Log -> Log #

Get root log, i.e. just drop current component and scope

getLog :: Component -> Scope -> Log -> Log #

Get log for specified component and scope

subLog :: Component -> Scope -> Log -> Log #

Get sub-log

getLogConfig :: MonadIO m => Log -> m LogConfig #

Read log config

updateLogConfig :: MonadIO m => Log -> (LogConfig -> LogConfig) -> m LogConfig #

Modify log config

updateLogHandlers :: MonadIO m => Log -> ([LogHandler] -> [LogHandler]) -> m () #

Update log handlers, this restarts handlers thread

writeLog :: MonadIO m => Log -> Level -> Text -> m () #

Write message to log for current component and scope

stopLog :: MonadIO m => Log -> m () #

Wait log messages and stop log