{-|
Module          : Logging
Copyright       : (c) 2019 Version Cloud
License         : BSD3
Maintainer      : Jorah Gao <log4hs@version.cloud>
Stability       : experimental
Portability     : portable

= A python logging style log library.

=== A simple example:

@
  \{\-\# LANGUAGE OverloadedStrings \#\-\}
  \{\-\# LANGUAGE TemplateHaskell   \#\-\}

  module Main ( main ) where

  import           Data.Aeson
  import           Data.Maybe
  import           Logging
  import           Prelude    hiding (error)

  main :: IO ()
  main = fromJust (decode \"{}\") >>= flip run app

  myLogger = \"MyLogger.Main\"

  app :: IO ()
  app = do
    $(debug) myLogger \"this is a test message\"
    $(info) myLogger \"this is a test message\"
    $(warn) myLogger \"this is a test message\"
    $(error) myLogger \"this is a test message\"
    $(fatal) myLogger \"this is a test message\"
    $(logv) myLogger \"LEVEL 100\" \"this is a test message\"
@


__See "Logging.Aeson" to lean more about decoding json into 'Manager'__
-}
module Logging
  ( module Logging.Aeson
  , module Logging.Types
  , module Logging.Deprecated
  , module Logging.Internal
  -- ** Logging THs
  , module Logging.TH
  ) where

import           Logging.Aeson
import           Logging.Deprecated
import           Logging.Internal   hiding (log)
import           Logging.TH
import           Logging.Types