【问题标题】:Where to initialize logging in a Compojure app?在 Compojure 应用程序中在哪里初始化日志记录?
【发布时间】:2023-03-13 16:55:01
【问题描述】:

我有一个使用 Luminus 生成的 Compojure 应用程序。我想使用clj-logging-config 配置日志记录,但我为此苦苦挣扎。我将(!set-logger) 命令放在init 函数中(在project.clj 中用{:ring {:init} 声明),但我无法解释这种行为。

如果我只是说(!set-logger),那么它会记录一些内容。如果我说(set-logger! :pattern "%d - %m%n"),那么它会抱怨:

log4j:WARN No appenders could be found for logger (example.routes.home).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

设置日志级别好像没有任何效果。

(!set-logger) 移动到不同模块的顶部似乎会导致这些模块按预期记录,但我找不到合适的位置来放置一个带有我想要的所有参数的(!set-logger) 并拥有它影响整个应用程序。

【问题讨论】:

    标签: logging clojure compojure ring luminus


    【解决方案1】:

    所以这似乎有效:

    (set-loggers!
      :root {
        :level :debug
        :pattern "%d - [%p] %m%n"
      }
    )
    

    我的假设是 set-logger! 默认设置根记录器。我猜是不是不对?

    【讨论】:

    • 我接受了这一点,尽管我不能 100% 确定我找到了正确的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 2018-07-07
    • 2021-02-12
    • 2019-01-22
    • 1970-01-01
    • 2012-11-23
    相关资源
    最近更新 更多