packages feed

extensible-effects-concurrent-0.29.1: examples/example-3/Main.hs

module Main where

import           Control.Eff
import           Control.Eff.Log
import           Control.Eff.LogWriter.File
import           Control.Eff.LogWriter.IO
import           Control.Eff.LogWriter.DebugTrace
import           Control.Lens

main :: IO ()
main =
  runLift
  $  withSomeLogging @(Lift IO)
  $  withFileLogWriter  "extensible-effects-concurrent-example-3.log"
  $  addLogWriter (filteringLogWriter severeMessages (mappingLogWriter (lmMessage %~ ("traced: " <>)) (debugTraceLogWriter renderRFC5424)))
  $  modifyLogWriter (defaultIoLogWriter "example-3" local0)
  $  addLogWriter (filteringLogWriter severeMessages (mappingLogWriter (lmMessage %~ ("traced without timestamp: " <>)) (debugTraceLogWriter renderRFC5424)))
  $  do
        logEmergency "test emergencySeverity 1"
        logCritical "test criticalSeverity 2"
        logAlert "test alertSeverity 3"
        logError "test errorSeverity 4"
        logWarning "test warningSeverity 5"
        logInfo "test informationalSeverity 6"
        logDebug "test debugSeverity 7"


severeMessages :: LogPredicate
severeMessages = view (lmSeverity . to (<= errorSeverity))