module Hack.Contrib.Middleware.SimpleAccessLogger (simple_access_logger) where

import Hack
import Hack.Contrib.Utils
import Hack.Contrib.Request
import Hack.Contrib.Middleware.Hub

import MPSUTF8
import Prelude hiding ((.), (^), (>), log)
import Data.Maybe

program :: String
program = "SimpleAccessLogger"

simple_access_logger :: Maybe (String -> IO ()) -> Middleware
simple_access_logger stream app = \env -> do
  let my_stream = stream.fromMaybe (env.hack_errors)
  let log       = simple_logger my_stream program

  Info .log (env.url.unescape_uri)
  
  app env