Skip to content

ixmatus/snaplet-hslogger

Repository files navigation

Welcome!

https://img.shields.io/hackage/v/snaplet-hslogger.svg?style=flat https://travis-ci.org/ixmatus/snaplet-hslogger.svg?branch=master

snaplet-hslogger provides a convenience interface to the Haskell HSLogger package.

{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards   #-}
{-# LANGUAGE TemplateHaskell   #-}

module Main where

------------------------------------------------------------------------------
import           Control.Applicative
import           Control.Lens
import           System.Log
import           Snap
import           Snap.Snaplet.Log
import           Text.Email.Validate

------------------------------------------------------------------------------
data App = App
    { _logger :: Snaplet ()
    }

makeLenses ''App

------------------------------------------------------------------------------
-- | The application's routes.
routes :: [(ByteString, Handler App App ())]
routes = [ ("/"            , writeText "hello")
         , ("/foo"         , fooHandler)
         ]

fooHandler :: Handler App App ()
fooHandler = do
    log DEBUG "Message"
    getResponse >>= finishWith


------------------------------------------------------------------------------
-- | The application initializer.
app :: SnapletInit App App
app = makeSnaplet "app" "An snaplet example application." Nothing $ do
    m <- nestSnaplet "hslogger" logger $ initLogger
    addRoutes routes
    return $ App m


main :: IO ()
main = serveSnaplet defaultConfig app

About

An HSLogger snaplet for snap (snap's logging facilities are poor and not configurable).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors