The logging-effect-extra-handler package

[ Tags: library, mit, other, program ] [ Propose Tags ]

Handy logging handler combinators.

[Skip to Readme]


Versions 1.0.0, 1.1.0, 1.1.1
Change log
Dependencies base (>=4.8 && <4.11), exceptions (>= && <0.9), logging-effect (>=1.1.0 && <1.3), logging-effect-extra-handler, time (>=1.5 && <1.9), wl-pprint-text (>= && <1.2) [details]
License MIT
Author Jason Shipman
Maintainer Jason Shipman
Category Other
Home page
Bug tracker
Source repository head: git clone
Uploaded Mon Nov 20 20:52:30 UTC 2017 by jship
Distributions NixOS:1.1.1, Stackage:1.1.1
Executables route-handler-with-iso8601, route-handler, rfc822-handler, iso8601plus-handler, iso8601-handler
Downloads 161 total (106 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-11-20 [all 1 reports]
Hackage Matrix CI




Maintainer's Corner

For package maintainers and hackage trustees

Readme for logging-effect-extra-handler-1.1.1

[back to package description]



{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE OverloadedStrings #-}

module Main (main) where

import Control.Monad.Log (MonadLog, WithSeverity)
import qualified Control.Monad.Log as Log
import qualified Control.Monad.Log.Extra.Handler as Log
import Text.PrettyPrint.Leijen.Text (Doc)

app :: MonadLog (WithSeverity Doc) m => m ()
app = do
  Log.logEmergency "GAH! All systems are down!!!"
  Log.logAlert "Red alert!"
  Log.logCritical "Critical hit!"
  Log.logError "Errors abound!"
  Log.logWarning "Cargo number 2331 has commandeered the vessel"
  Log.logNotice "Heads up, but it's no biggie."
  Log.logInfo "Does anyone read these?"
  Log.logDebug "Sleuthing with log messages..."

main :: IO ()
main =
  Log.withStdoutHandler $ \stdoutHandler ->
  Log.withStderrHandler $ \stderrHandler ->
  Log.runLoggingT app (Log.routeHandler (Log.iso8601Handler stdoutHandler)
                                        (Log.iso8601Handler stderrHandler)

Usage via stack

# Build the project.
stack build

# Run the `iso8601-handler` example
stack exec iso8601-handler

# Run the `iso8601plus-handler` example
stack exec iso8601plus-handler

# Run the `rfc822-handler` example
stack exec rfc822-handler

# Run the `route-handler-with-iso8601` example
stack exec route-handler-with-iso8601

# Run the `route-handler` example
stack exec route-handler