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

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

Handy logging handler combinators.

[Skip to Readme]


[Index] [Quick Jump]


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 1.0.0, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 2.0.0, 2.0.1
Change log CHANGELOG.md
Dependencies base (>=4.8 && <4.12), exceptions (>= && <0.11), logging-effect (>=1.1.0 && <1.4), logging-effect-extra-handler, prettyprinter (>=1.2 && <1.3), time (>=1.5 && <1.10) [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 2018-08-06T00:08:12Z
Reverse Dependencies 1 direct, 0 indirect [details]
Executables route-handler-with-iso8601, route-handler, rfc822-handler, iso8601plus-handler, iso8601-handler
Downloads 4168 total (19 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-08-06 [all 1 reports]

Readme for logging-effect-extra-handler-2.0.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 Data.Text.Prettyprint.Doc (Doc)

app :: MonadLog (WithSeverity (Doc ann)) 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