我注意到很多庫我的應用程序依賴於傾向於做某種日誌初始化,不能在導入時與clj-logging-config很好地玩。在初始化時使用clj-logging-config有沒有辦法繞過log4j.properties?
例如:現在,我已經得到了與配置記錄的方法的應用程序如下:
(defn set-logging-defaults
"Set the logging level for the application root"
[]
(set-loggers! :root {:level :info
:out :console
:pattern "[%p] %d{MM-dd-yyyy HH:mm:ss} | %m%n"}))
然後,此方法被調用的配置方法之前,服務器啓動時,例如:
(defn -main []
(init/configure)
(server/run-server #'app {:port (Integer. (or (System/getenv "PORT") "8080"))
:join? false}))
但是,我有我的應用程序的核心命名空間的導入路徑korma.db。在執行日誌記錄配置之前,進口發生了,我結束了下面當我啓動我的應用程序(去除korma.db進口將立即刪除此WARN):
log4j:WARN No appenders could be found for logger (com.mchange.v2.log.MLog).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
有沒有辦法解決這個我還沒有想到,它不依賴於在導入時創建log4j.properties文件或執行(set-logging-defaults)?一般來說,這裏推薦的做法是什麼?
我最終最終以實際運行應用程序的最大效用的方式使用了lein的project.clj':injections'字段 - 不滿足測試和運行repl,但是做了訣竅。 – Venantius 2014-09-05 22:10:09
一個月後回到這個問題,我已經接受,只是使用log4j.properties配置文件是一種方式。對於我無法解決這個問題的事實,我並不是非常高興,但是在這一點上我嘗試了其他一切,我認爲很明顯,這是讓事情「僅僅工作」的唯一可靠方法。 – Venantius 2014-10-05 08:57:46