From 5a37da07be073e6c48af315105a7b43bc42bded1 Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Fri, 30 Aug 2019 11:52:47 -0400
Subject: [PATCH] Get HTTP logs on stdout

---
 PaymentServer.cabal       |  2 ++
 src/PaymentServer/Main.hs | 17 ++++++++++++++++-
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/PaymentServer.cabal b/PaymentServer.cabal
index a765653..b29d04b 100644
--- a/PaymentServer.cabal
+++ b/PaymentServer.cabal
@@ -23,6 +23,8 @@ library
                      , servant
                      , servant-server
                      , wai
+                     , wai-extra
+                     , data-default
                      , warp
                      , stripe-core
                      , text
diff --git a/src/PaymentServer/Main.hs b/src/PaymentServer/Main.hs
index 060502b..cf965e6 100644
--- a/src/PaymentServer/Main.hs
+++ b/src/PaymentServer/Main.hs
@@ -6,6 +6,9 @@ module PaymentServer.Main
   ( main
   ) where
 
+import Data.Default
+  ( def
+  )
 import Servant
   ( Proxy(Proxy)
   , Server
@@ -16,6 +19,14 @@ import Servant
 import Network.Wai.Handler.Warp
   ( run
   )
+import Network.Wai.Middleware.RequestLogger
+  ( OutputFormat(Detailed, CustomOutputFormatWithDetails)
+  , outputFormat
+  , mkRequestLogger
+  )
+import Network.Wai.Middleware.RequestLogger.JSON
+  ( formatAsJSON
+  )
 import PaymentServer.Persistence
   ( VoucherDatabase
   , memory
@@ -37,4 +48,8 @@ paymentServerApp :: VoucherDatabase d => d -> Application
 paymentServerApp = (serve paymentServerAPI) . paymentServer
 
 main :: IO ()
-main = memory >>= return . paymentServerApp >>= run 8081
+main = do
+  db <- memory
+  let app = paymentServerApp db
+  logger <- mkRequestLogger $ def { outputFormat = Detailed True}
+  run 8081 $ logger app
-- 
GitLab