cabal-hoogle-3.10.0.0: src/Hoogle/Cabal/Logger.hs
module Hoogle.Cabal.Logger
( Logger,
cmapLogger,
stdoutLogger,
logWith,
module Colog.Core,
)
where
import Colog.Core
import Data.Time (getCurrentTime)
import Control.Monad.IO.Class
type Logger msg = LogAction IO (WithSeverity msg)
cmapLogger :: (a -> b) -> Logger b -> Logger a
cmapLogger f = cmap (fmap f)
stdoutLogger :: Show msg => Logger msg
stdoutLogger = LogAction $ \msg -> do
-- cmap showMsg logStringStdout
now <- getCurrentTime
putStrLn $ showMsg now msg
where
showMsg time (WithSeverity msg severity) =
"["
++ show severity
++ "]["
++ show time
++ "] "
++ show msg
logWith :: MonadIO m => Logger msg -> Severity -> msg -> m ()
logWith logger severity msg = liftIO $ unLogAction logger (WithSeverity msg severity)