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 @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))