Add prefixes to your monad-logger output

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow to host generated Haddocks.

LicenseRef-Apache licensed and maintained by Matthew Parsons


Build Status

This package provides an easy way to add prefixes to any MonadLogger. Here’s a brief example:

{-# LANGUAGE TemplateHaskell #-}

import Control.Monad.Logger
import Control.Monad.Logger.Prefix

main :: IO ()
main = runStdoutLoggingT $ do
    $(logDebug) "This one has no prefix."

    "foo" `prefixLogs` do
        $(logDebug) "This one has a [foo] prefix."

        "bar" `prefixLogs` do
            $(logDebug) "This one has both [foo] and [bar] prefixes."

The package includes a benchmark demonstrating that there is no performance difference with ordinary logging.


Change log


  • Relaxed upper bound on transformers


  • Relaxed upper bound on exceptions from 0.10 to 0.11


  • Relaxed upper bound on exceptions from 0.9 to 0.10


  • Relaxed upper bound on conduit