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, 2.0.0, 2.0.1
Change log CHANGELOG.md
Dependencies base (>=4.8 && <4.12), exceptions (>=0.8.0.2 && <0.11), logging-effect (>=1.1.0 && <1.4), logging-effect-extra-handler, prettyprinter (==1.2.*), 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 Mon Aug 6 00:08:12 UTC 2018
Distributions NixOS:2.0.1
Executables route-handler-with-iso8601, route-handler, rfc822-handler, iso8601plus-handler, iso8601-handler
Downloads 917 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-08-06 [all 1 reports]
Hackage Matrix CI

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for logging-effect-extra-handler-2.0.1

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