Clojure日志记录不适用于简单示例

时间:2016-11-15 10:12:07

标签: logging clojure

我过去曾使用Clojure进行日志记录,没有任何问题。突然之间,在以前一直很好的服务器上,它无法正常工作。

这是最简单的项目,没有额外的依赖项和配置:

project.clj

(defproject test "0.1.0-SNAPSHOT"
  :dependencies [[org.clojure/clojure "1.8.0"]
                 [org.clojure/tools.logging "0.3.1"]]
  :main ^:skip-aot test.core
  :target-path "target/%s")

src/test/core.clj

(ns test.core
  (:require [clojure.tools.logging :as log]))

(defn -main
  [& args]
  (log/info "Hello INFO logger!")
  (log/debug "Hello DEBUG logger!")
  (log/warn "Hello WARN logger!")
  (println "Hello, STDOUT!")
  (binding [*out* *err*]
    (println "Hello, STDERR!")))

当我运行它时:

$ lein run
Hello, STDOUT!
Hello, STDERR!

我可以开始添加额外的日志配置,但我很困惑,最小的例子不再有效。

$ java -version
openjdk version "9-internal"
OpenJDK Runtime Environment (build 9-internal+0-2016-04-14-195246.buildd.src)
OpenJDK 64-Bit Server VM (build 9-internal+0-2016-04-14-195246.buildd.src, mixed mode)

当然,它适用于我的开发机器(Mac OS上的1.​​8.0)......

编辑:

由于配置java.util.logging(这是clojure.tools.logging的最后一行备用),因此看起来像我们这样,因为未配置的java.util.logging.Logger也不会写入stdout,但是当有ConsoleHandler时会这样做。

尽管如此,我认为这是一个有效的Clojure问题,因为它涉及clojure.tools.logging的默认行为。

0 个答案:

没有答案