{- | Provides an implementation of the ghcide @Logger@ which uses @System.Log.Logger@ under the hood. -} module Ide.Logger ( hlsLogger , logm , debugm , warningm , errorm ) where import Control.Monad.IO.Class import qualified Data.Text as T import qualified Development.IDE.Types.Logger as L import System.Log.Logger -- --------------------------------------------------------------------- hlsLogger :: L.Logger hlsLogger = L.Logger $ \pri txt -> case pri of L.Telemetry -> logm (T.unpack txt) L.Debug -> debugm (T.unpack txt) L.Info -> logm (T.unpack txt) L.Warning -> warningm (T.unpack txt) L.Error -> errorm (T.unpack txt) -- --------------------------------------------------------------------- logm :: MonadIO m => String -> m () logm s = liftIO $ infoM "hls" s debugm :: MonadIO m => String -> m () debugm s = liftIO $ debugM "hls" s warningm :: MonadIO m => String -> m () warningm s = liftIO $ warningM "hls" s errorm :: MonadIO m => String -> m () errorm s = liftIO $ errorM "hls" s -- ---------------------------------------------------------------------