packages feed

lager-1.0.0.0: test/Main.hs

module Main (main) where

import Control.Concurrent
import Control.Concurrent.Async
import Control.Monad
import Lager

main :: IO ()
main =
  withLager "APP" [Console Debug defLevelColor] $ \l ->
  streamLager l $ \msgIO ->
  concurrently_ (streaming msgIO) $ do
    logNotice l "Hello World!"
    logDebug l "Invisible"
    logErr l "NOO"
    logInfo l "YES"
    logWarn  l "HI"
    let l' = extendLager "SUB" l
    logInfo l' "SUB!"
    forever $ do
      mapConcurrently_ id
        [ -- logEmerg l "Emergency!"
          logAlert l "Alert!"
        , logCrit l "Critical."
        , logErr l "Error."
        , logWarn l "Warning"
        , logNotice l "Notice"
        , logInfo l "Information"
        , logDebug l "Debugging"
        ]
      threadDelay 1000000
  where
    streaming msgIO = forever $ print =<< msgIO