我注意到很多库我的应用程序依赖于倾向于做某种日志初始化,不能在导入时与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