Fix exception log handler, *out* is not PrintWriter necessarily

This commit is contained in:
Juho Teperi 2021-03-11 21:57:15 +02:00
parent c212a7a9fa
commit a3aa5df111
3 changed files with 8 additions and 7 deletions

View file

@ -80,7 +80,8 @@
;; encoding response body ;; encoding response body
muuntaja/format-response-middleware muuntaja/format-response-middleware
;; exception handling ;; exception handling
exception/exception-middleware (exception/create-exception-middleware
{::exception/default (partial exception/wrap-log-to-console exception/default-handler)})
;; decoding request body ;; decoding request body
muuntaja/format-request-middleware muuntaja/format-request-middleware
;; coercing response bodys ;; coercing response bodys

View file

@ -4,7 +4,7 @@
[clojure.spec.alpha :as s] [clojure.spec.alpha :as s]
[clojure.string :as str]) [clojure.string :as str])
(:import (java.time Instant) (:import (java.time Instant)
(java.io PrintWriter))) (java.io PrintWriter Writer)))
(s/def ::handlers (s/map-of any? fn?)) (s/def ::handlers (s/map-of any? fn?))
(s/def ::spec (s/keys :opt-un [::handlers])) (s/def ::spec (s/keys :opt-un [::handlers]))
@ -35,7 +35,7 @@
(wrap error-handler error request) (wrap error-handler error request)
(error-handler error request)))) (error-handler error request))))
(defn print! [^PrintWriter writer & more] (defn print! [^Writer writer & more]
(.write writer (str (str/join " " more) "\n"))) (.write writer (str (str/join " " more) "\n")))
;; ;;
@ -68,7 +68,7 @@
(defn wrap-log-to-console [handler ^Throwable e {:keys [uri request-method] :as req}] (defn wrap-log-to-console [handler ^Throwable e {:keys [uri request-method] :as req}]
(print! *out* (Instant/now) request-method (pr-str uri) "=>" (.getMessage e)) (print! *out* (Instant/now) request-method (pr-str uri) "=>" (.getMessage e))
(.printStackTrace e ^PrintWriter *out*) (.printStackTrace e (PrintWriter. ^Writer *out*))
(handler e req)) (handler e req))
;; ;;

View file

@ -4,7 +4,7 @@
[clojure.spec.alpha :as s] [clojure.spec.alpha :as s]
[clojure.string :as str]) [clojure.string :as str])
(:import (java.time Instant) (:import (java.time Instant)
(java.io PrintWriter))) (java.io Writer PrintWriter)))
(s/def ::handlers (s/map-of any? fn?)) (s/def ::handlers (s/map-of any? fn?))
(s/def ::spec (s/keys :opt-un [::handlers])) (s/def ::spec (s/keys :opt-un [::handlers]))
@ -55,7 +55,7 @@
(catch Throwable e (catch Throwable e
(on-exception handlers e request respond raise))))))) (on-exception handlers e request respond raise)))))))
(defn print! [^PrintWriter writer & more] (defn print! [^Writer writer & more]
(.write writer (str (str/join " " more) "\n"))) (.write writer (str (str/join " " more) "\n")))
;; ;;
@ -88,7 +88,7 @@
(defn wrap-log-to-console [handler ^Throwable e {:keys [uri request-method] :as req}] (defn wrap-log-to-console [handler ^Throwable e {:keys [uri request-method] :as req}]
(print! *out* (Instant/now) request-method (pr-str uri) "=>" (.getMessage e)) (print! *out* (Instant/now) request-method (pr-str uri) "=>" (.getMessage e))
(.printStackTrace e ^PrintWriter *out*) (.printStackTrace e (PrintWriter. ^Writer *out*))
(handler e req)) (handler e req))
;; ;;