These 2 functions are from one of my incomplete projects: java-report-maker
(defmacro with-stdout [stdout & body]
"Redirects stdout, executes body, and then resets stdout,
NOTE: only works for Java methods, doesn't work with Clojure code"
`(try
(System/setOut ~stdout)
~@body
(finally