packages feed

hcheckers-0.1.0.0: src/Core/Logging.hs

{-# LANGUAGE CPP #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE OverloadedStrings #-}

module Core.Logging where

import Language.Haskell.TH.Syntax
import qualified System.Posix.Syslog as Syslog
import System.Log.Heavy
import System.Log.Heavy.TH

verbose_level :: Level
verbose_level = Level "VERBOSE" 700 Syslog.Debug

config_level :: Level
config_level = Level "CONFIG" 650 Syslog.Debug

verbose :: Q Exp
#ifdef VERBOSE
verbose = putMessage trace_level
#else
verbose = [| \fmt args -> return () |]
#endif

traceConfig :: Q Exp
traceConfig = putMessage config_level