heavy-logger-0.1.0.0: Full-weight logging based on fast-logger

Safe HaskellNone
LanguageHaskell2010

System.Log.Heavy.Types

Contents

Description

This module contains generic types definition, along with some utilities.

Synopsis

Documentation

type LogSource = [String] Source #

Log message source. This is usually a list of program module names, for example ["System", "Log", "Heavy", "Types"].

data LogMessage Source #

Log message structure

Constructors

VarContainer vars => LogMessage 

Fields

Instances

Monad m => MonadReader Logger (LoggingT m) Source # 

Methods

ask :: LoggingT m Logger #

local :: (Logger -> Logger) -> LoggingT m a -> LoggingT m a #

reader :: (Logger -> a) -> LoggingT m a #

type LogFilter = [(LogSource, LogLevel)] Source #

Log messages filter by source and level.

Semantics under this is that (source, severity) pair allows to write messages from source of severity (and all more important messages) to log.

class IsLogBackend b where Source #

Logging backend class.

Minimal complete definition

withLoggingB

Methods

withLoggingB :: MonadIO m => b -> (m a -> IO a) -> LoggingT m a -> m a Source #

Run LoggingT within some kind of IO monad

Instances

data LogBackend Source #

A container for arbitrary logging backend. You usually will use this similar to:

 getLoggingSettings :: String -> LogBackend
 getLoggingSettings "syslog" = LogBackend defaultsyslogsettings

Constructors

IsLogBackend b => LogBackend b 

type Logger = LogMessage -> IO () Source #

Logging function

newtype LoggingT m a Source #

Logging monad transformer.

Constructors

LoggingT (ReaderT Logger m a) 

Instances

MonadTrans LoggingT Source # 

Methods

lift :: Monad m => m a -> LoggingT m a #

MonadTransControl LoggingT Source # 

Associated Types

type StT (LoggingT :: (* -> *) -> * -> *) a :: * #

Methods

liftWith :: Monad m => (Run LoggingT -> m a) -> LoggingT m a #

restoreT :: Monad m => m (StT LoggingT a) -> LoggingT m a #

(MonadBaseControl IO m, MonadIO m) => MonadBaseControl IO (LoggingT m) Source # 

Associated Types

type StM (LoggingT m :: * -> *) a :: * #

Methods

liftBaseWith :: (RunInBase (LoggingT m) IO -> IO a) -> LoggingT m a #

restoreM :: StM (LoggingT m) a -> LoggingT m a #

MonadIO m => MonadBase IO (LoggingT m) Source # 

Methods

liftBase :: IO α -> LoggingT m α #

Monad m => MonadReader Logger (LoggingT m) Source # 

Methods

ask :: LoggingT m Logger #

local :: (Logger -> Logger) -> LoggingT m a -> LoggingT m a #

reader :: (Logger -> a) -> LoggingT m a #

Monad m => Monad (LoggingT m) Source # 

Methods

(>>=) :: LoggingT m a -> (a -> LoggingT m b) -> LoggingT m b #

(>>) :: LoggingT m a -> LoggingT m b -> LoggingT m b #

return :: a -> LoggingT m a #

fail :: String -> LoggingT m a #

Functor m => Functor (LoggingT m) Source # 

Methods

fmap :: (a -> b) -> LoggingT m a -> LoggingT m b #

(<$) :: a -> LoggingT m b -> LoggingT m a #

Applicative m => Applicative (LoggingT m) Source # 

Methods

pure :: a -> LoggingT m a #

(<*>) :: LoggingT m (a -> b) -> LoggingT m a -> LoggingT m b #

(*>) :: LoggingT m a -> LoggingT m b -> LoggingT m b #

(<*) :: LoggingT m a -> LoggingT m b -> LoggingT m a #

MonadIO m => MonadIO (LoggingT m) Source # 

Methods

liftIO :: IO a -> LoggingT m a #

MonadIO m => MonadLogger (LoggingT m) Source # 

Methods

monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> LoggingT m () #

type StT LoggingT a Source # 
type StM (LoggingT m) a Source # 
type StM (LoggingT m) a = ComposeSt LoggingT m a

runLoggingT :: LoggingT m a -> Logger -> m a Source #

Run logging monad

defaultLogFilter :: LogFilter Source #

Default log messages filter. This says pass all messages of level Info or higher.

splitString :: Char -> String -> [String] Source #

Simple implementation of splitting string by character.

splitDots :: String -> [String] Source #

Split string by dots

logMessage :: MonadIO m => LogMessage -> LoggingT m () Source #

Log a message

Orphan instances