-- | -- Module: NetSpider.Spider.Internal.Log -- Description: Logging functions related to Spider -- Maintainer: Toshio Ito -- -- __this module is internal. End-users should not use it.__ module NetSpider.Spider.Internal.Log ( runLogger, logLine, logDebug, logWarn ) where import Control.Monad.Logger (LogLevel, LoggingT) import qualified Control.Monad.Logger as Log import Data.Functor.Identity (Identity, runIdentity) import Data.Text (Text) import NetSpider.Log (LogLine) import NetSpider.Spider.Internal.Spider (Spider(..)) import NetSpider.Spider.Config (Config(..)) runLogger :: Spider n na fla -> LoggingT IO a -> IO a runLogger spider act = Log.runStderrLoggingT $ Log.filterLogger fil act where fil _ level = level >= (logThreshold $ spiderConfig spider) logLine :: Spider n na fla -> LogLine -> IO () logLine spider (loc, src, level, msg) = runLogger spider $ Log.monadLoggerLog loc src level msg logDebug :: Spider n na fla -> Text -> IO () logDebug spider msg = runLogger spider $ Log.logDebugN msg logWarn :: Spider n na fla -> Text -> IO () logWarn spider msg = runLogger spider $ Log.logWarnN msg