module Network.AWS.Flow.Logger ( logStrLn , logDebug' , logInfo' , logWarn' , logError' ) where import Network.AWS.Flow.Prelude import Control.Monad.Logger import Data.Time.Clock import Data.Time.Format import Data.Version import Formatting hiding ( now ) import Paths_wolf import System.Log.FastLogger prefix :: IO LogStr prefix = do now <- getCurrentTime return $ toLogStr $ sformat (string % " name=wolf v=" % string % " ") (formatTime defaultTimeLocale "%FT%T%z" now) (showVersion version) logStrLn :: LogStr -> IO () logStrLn s = do loggerSet <- newStderrLoggerSet defaultBufSize p <- prefix mapM_ (pushLogStr loggerSet) [p, s, "\n"] flushLogStr loggerSet logDebug' :: MonadLogger m => Text -> m () logDebug' = logDebugN logInfo' :: MonadLogger m => Text -> m () logInfo' = logInfoN logWarn' :: MonadLogger m => Text -> m () logWarn' = logWarnN logError' :: MonadLogger m => Text -> m () logError' = logErrorN