MyNixOS website logo
Description

Handy logging handler combinators.

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
Metadata

Version

2.0.1

License

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows