packages feed

co-log-simple-1.1.0: src/examples/Main.hs

module Main
  ( main
  )
  where

import Colog.Monad (usingLoggerT)
import Colog.Simple (LogAction, Message, Severity (Debug, Notice), (%), (%+),
  logger, logInfo, logNotice, logTest, logTextStderr, logTextStdout, msg, msgc,
  sevc, stack)


main :: IO ()
main = do
  putStrLn "------------------------------------------"
  usingLoggerT (logger (sevc % msg) logTextStdout Debug) $ do
    logNotice "Examples of all Severity values"
    logTest

  putStrLn "------------------------------------------"
  usingLoggerT (logger msgc logTextStderr Notice) $ do
    logNotice "Example of a different formatter with Severity set to Notice"
    logNotice "These are going to stderr"
    logTest

  putStrLn "------------------------------------------"
  usingLoggerT (logger msg logTextStdout Debug) $ do
    logNotice "No colors is possible of course"
    logTest

  putStrLn "------------------------------------------"
  usingLoggerT (logger (sevc % msg %+ stack) logTextStdout Debug) $ do
    logNotice "With call stack info"
    logTest

  putStrLn "------------------------------------------"
  -- Example of completely turning off logging
  usingLoggerT (mempty :: LogAction IO Message) $
    logInfo "This message should never be shown"