packages feed

rfc-0.0.0.1: src/RFC/Log.hs

module RFC.Log
  ( module Control.Logger.Simple
  , module RFC.Log
  ) where

import RFC.Prelude
import RFC.Env as Env
import Control.Logger.Simple (pureDebug, pureInfo, pureWarn, pureError, logDebug, logInfo, logWarn, logError)
import Control.Logger.Simple as Log
import System.IO (stderr, hSetBuffering, BufferMode(..))

withLogging :: IO a -> IO a
withLogging action = do
  isDev <- Env.isDevelopment
  hSetBuffering stderr LineBuffering
  Log.withGlobalLogging (logConfig isDev) action
  where
    logConfig isDev =
      if isDev then
          Log.LogConfig { Log.lc_file = Nothing, Log.lc_stderr = True }
      else
          Log.LogConfig { Log.lc_file = Just "./log/api-server.log", Log.lc_stderr = False }