logging-effect-extra-handler: Handy logging handler combinators

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

Handy logging handler combinators.


[Skip to Readme]
Versions 1.0.0, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4
Change log CHANGELOG.md
Dependencies base (>=4.8 && <4.11), exceptions (>=0.8.0.2 && <0.11), logging-effect (>=1.1.0 && <1.3), logging-effect-extra-handler, time (>=1.5 && <1.10), wl-pprint-text (>=1.1.0.4 && <1.2) [details]
License MIT
Author Jason Shipman
Maintainer Jason Shipman
Category Other
Home page https://github.com/jship/logging-effect-extra#readme
Bug tracker https://github.com/jship/logging-effect-extra/issues
Source repo head: git clone https://github.com/jship/logging-effect-extra
Uploaded by jship at Tue Mar 20 01:55:43 UTC 2018
Distributions LTSHaskell:1.1.4, NixOS:1.1.4, openSUSE:1.1.4
Executables route-handler-with-iso8601, route-handler, rfc822-handler, iso8601plus-handler, iso8601-handler
Downloads 635 total (26 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 2018-03-20 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for logging-effect-extra-handler-1.1.4

[back to package description]

logging-effect-extra-handler

Synopsis

{-# 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)
                                        id)

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