Safe Haskell | None |
---|---|
Language | Haskell2010 |
Control.Monad.Log
Contents
Description
- newtype Level = Level Int
- levelDebug :: Level
- levelInfo :: Level
- levelWarning :: Level
- levelError :: Level
- levelCritical :: Level
- data Logger env = Logger {
- filterLevel :: !Level
- environment :: env
- formatter :: Level -> FormattedTime -> env -> Text -> LogStr
- timeCache :: IO FormattedTime
- logger :: LogStr -> IO ()
- cleanUp :: IO ()
- envLens :: Functor f => (env -> f env) -> Logger env -> f (Logger env)
- makeLogger :: MonadIO m => (Level -> FormattedTime -> env -> Text -> LogStr) -> TimeFormat -> LogType -> Level -> env -> m (Logger env)
- makeDefaultLogger :: (MonadIO m, TextShow env) => TimeFormat -> LogType -> Level -> env -> m (Logger env)
- makeDefaultJSONLogger :: (MonadIO m, ToJSON env) => TimeFormat -> LogType -> Level -> env -> m (Logger env)
- defaultFormatter :: TextShow env => Level -> FormattedTime -> env -> Text -> LogStr
- defaultJSONFormatter :: ToJSON env => Level -> FormattedTime -> env -> Text -> LogStr
- class MonadIO m => MonadLog env m | m -> env where
- askLogger :: m (Logger env)
- localLogger :: (Logger env -> Logger env) -> m a -> m a
- withFilterLevel :: MonadLog env m => Level -> m a -> m a
- withEnv :: MonadLog env m => env -> m a -> m a
- localEnv :: MonadLog env m => (env -> env) -> m a -> m a
- newtype LogT env m a = LogT {}
- runLogTSafe :: (MonadIO m, MonadMask m) => Logger env -> LogT env m a -> m a
- runLogTSafeBase :: (MonadBaseControl IO m, MonadIO m) => Logger env -> LogT env m a -> m a
- runLogT' :: MonadIO m => Logger env -> LogT env m a -> m a
- debug :: MonadLog env m => Text -> m ()
- info :: MonadLog env m => Text -> m ()
- warning :: MonadLog env m => Text -> m ()
- error :: MonadLog env m => Text -> m ()
- critical :: MonadLog env m => Text -> m ()
- debug' :: MonadLog env m => env -> Text -> m ()
- info' :: MonadLog env m => env -> Text -> m ()
- warning' :: MonadLog env m => env -> Text -> m ()
- error' :: MonadLog env m => env -> Text -> m ()
- critical' :: MonadLog env m => env -> Text -> m ()
- data LogStr :: *
- toLogStr :: ToLogStr msg => msg -> LogStr
- data LogType :: *
- = LogNone
- | LogStdout BufSize
- | LogStderr BufSize
- | LogFileNoRotate FilePath BufSize
- | LogFile FileLogSpec BufSize
- | LogCallback (LogStr -> IO ()) (IO ())
- data FileLogSpec :: * = FileLogSpec {}
- type TimeFormat = ByteString
- type FormattedTime = ByteString
- simpleTimeFormat :: TimeFormat
- simpleTimeFormat' :: TimeFormat
parametrized Logger
type
Alias for Level 0
Alias for Level 2
Alias for Level 3
Alias for Level 4
A logger type parametrized by an extra environment type.
Constructors
Logger | |
Fields
|
Arguments
:: MonadIO m | |
=> (Level -> FormattedTime -> env -> Text -> LogStr) | formatter function |
-> TimeFormat | |
-> LogType | |
-> Level | filter level |
-> env | init environment |
-> m (Logger env) |
make a Logger
based on FastLogger
.
makeDefaultLogger :: (MonadIO m, TextShow env) => TimeFormat -> LogType -> Level -> env -> m (Logger env) Source
make a Logger
with defaultFormatter
.
makeDefaultJSONLogger :: (MonadIO m, ToJSON env) => TimeFormat -> LogType -> Level -> env -> m (Logger env) Source
make a Logger
with defaultJSONFormatter
.
defaultFormatter :: TextShow env => Level -> FormattedTime -> env -> Text -> LogStr Source
a default formatter with following format:
[LEVEL] [TIME] [ENV] LOG MESSAGE\n
defaultJSONFormatter :: ToJSON env => Level -> FormattedTime -> env -> Text -> LogStr Source
MonadLog
class
class MonadIO m => MonadLog env m | m -> env where Source
This is the main class for using logging function in this package.
provide an instance for MonadLog
to log within your monad stack.
Methods
askLogger :: m (Logger env) Source
localLogger :: (Logger env -> Logger env) -> m a -> m a Source
Instances
MonadLog env m => MonadLog env (MaybeT m) Source | |
MonadLog env m => MonadLog env (ListT m) Source | |
MonadLog env m => MonadLog env (IdentityT m) Source | |
MonadIO m => MonadLog env (LogT env m) Source | |
(Monoid w, MonadLog env m) => MonadLog env (WriterT w m) Source | |
(Monoid w, MonadLog env m) => MonadLog env (WriterT w m) Source | |
MonadLog env m => MonadLog env (StateT s m) Source | |
MonadLog env m => MonadLog env (StateT s m) Source | |
MonadLog env m => MonadLog env (ReaderT r m) Source | |
MonadLog env m => MonadLog env (ExceptT e m) Source | |
MonadLog env m => MonadLog env (ContT r m) Source | |
(MonadLog env m, Monoid w) => MonadLog env (RWST r w s m) Source | |
(MonadLog env m, Monoid w) => MonadLog env (RWST r w s m) Source |
withFilterLevel :: MonadLog env m => Level -> m a -> m a Source
run MonadLog
within a new FilterLevel
.
localEnv :: MonadLog env m => (env -> env) -> m a -> m a Source
run MonadLog
within a modified environment.
LogT, a concrete monad transformaer
runLogTSafeBase :: (MonadBaseControl IO m, MonadIO m) => Logger env -> LogT env m a -> m a Source
safely run LogT
inside 'MonadBaseControl IO m'. Logs are guaranteed to be flushed on exceptions.
logging functions
re-export from text-show and fast-logger
data LogType :: *
Logger Type.
Constructors
LogNone | No logging. |
LogStdout BufSize | Logging to stdout.
|
LogStderr BufSize | Logging to stdout.
|
LogFileNoRotate FilePath BufSize | Logging to a file.
|
LogFile FileLogSpec BufSize | Logging to a file.
|
LogCallback (LogStr -> IO ()) (IO ()) | Logging with a log and flush action. run flush after log each message. |
data FileLogSpec :: *
The spec for logging files
Constructors
FileLogSpec | |
Fields
|
type TimeFormat = ByteString
type FormattedTime = ByteString
Type aliaes for date format and formatted date.
simpleTimeFormat :: TimeFormat
A simple time cache using format "%d%b%Y:%T %z"
simpleTimeFormat' :: TimeFormat
A simple time cache using format "%d-%b-%Y %T"