mirror of https://github.com/voidlizard/hbs2
50 lines
1.3 KiB
Haskell
50 lines
1.3 KiB
Haskell
{-# Language AllowAmbiguousTypes #-}
|
|
module HBS2.Git3.Logger ( setupLogger
|
|
, flushLoggers
|
|
, silence
|
|
, debugPrefix
|
|
, status, setStatusOn, STATUS
|
|
) where
|
|
|
|
import HBS2.Prelude
|
|
import HBS2.System.Logger.Simple.ANSI as Logger
|
|
|
|
data STATUS
|
|
|
|
-- debugPrefix :: LoggerEntry -> LoggerEntry
|
|
-- debugPrefix :: LoggerEntry -> LoggerEntry
|
|
debugPrefix = toStderr . logPrefix "[debug] "
|
|
|
|
setupLogger :: MonadIO m => m ()
|
|
setupLogger = do
|
|
-- setLogging @DEBUG $ toStderr . logPrefix "[debug] "
|
|
setLogging @ERROR $ toStderr . logPrefix "[error] "
|
|
setLogging @WARN $ toStderr . logPrefix "[warn] "
|
|
setLogging @NOTICE $ toStderr . logPrefix ""
|
|
setLogging @INFO $ toStderr . logPrefix ""
|
|
pure ()
|
|
|
|
flushLoggers :: MonadIO m => m ()
|
|
flushLoggers = do
|
|
silence
|
|
|
|
silence :: MonadIO m => m ()
|
|
silence = do
|
|
setLoggingOff @DEBUG
|
|
setLoggingOff @ERROR
|
|
setLoggingOff @WARN
|
|
setLoggingOff @NOTICE
|
|
setLoggingOff @INFO
|
|
|
|
instance HasLogLevel STATUS where
|
|
type instance LogLevel STATUS = 10
|
|
|
|
status :: forall a m . (MonadIO m) => Doc a -> m ()
|
|
status = Logger.writeLog @STATUS . show
|
|
|
|
setStatusOn :: MonadIO m => m ()
|
|
setStatusOn = do
|
|
setLogging @STATUS $ toStderr . logPrefix ""
|
|
|
|
|