我正在尝试使用https://github.com/ptaoussanis/timbre来登录文件而不是控制台。以下是我发现的一些文档:
; The default setup is simple console logging. We with to turn off console logging and
; turn on file logging to our chosen filename.
(timbre/set-config! [:appenders :standard-out :enabled?] false)
(timbre/set-config! [:appenders :spit :enabled?] true)
(timbre/set-config! [:shared-appender-config :spit-filename] log-file-name)
(timbre/set-config! [:shared-appender-config :spit-filename] log-file-name)
这适用于以前版本的sente,但不适用于版本[com.taoensso / timbre“4.3.1”]。 (由于无关的原因,我需要使用最新的)。上面代码的问题是set-config!
现在需要一个参数 - 一个哈希映射。而且我找不到任何可以帮助我将上述“两个参数”代码翻译成新的“一个参数”代码的文档。
我知道there有一个非常相似的问题。这个问题有实际的代码,所以更具体。我也提出了一个问题。上面的代码基本上直接来自here。
答案 0 :(得分:2)
要在timbre v4.0.0(2015年6月10日)中登录文件而不是控制台,您可以执行以下操作:
NUMBER [0-9]+
DECIMAL ("."{NUMBER})|({NUMBER}("."{NUMBER}?)?)
REAL {DECIMAL}([eE][+-]?{NUMBER})?
请注意,在音色v4.3.1中,以下内容不会删除或禁用println(console)appender:
(ns app.core
(:require [taoensso.timbre :as timbre]
[taoensso.timbre.appenders.core :as appenders]))
;; Disable logging to the console in timbre v4.0.0:
(timbre/merge-config! {:appenders {:println {:enabled? false}}})
;; Create a "spit to file" appender in timbre v4.0.0:
(timbre/merge-config! {:appenders {:spit (appenders/spit-appender {:fname "log.txt"})}})
相关问题可在https://github.com/ptaoussanis/timbre/issues/163
找到 增加:
正如Timbre允许简单地使用修改配置图(timbre/merge-config! {:appenders {:println nil}})
标准的clojure API,您也可以使用
timbre/*config*
基于此,您还可以定义一个简单的帮助器:
(timbre/swap-config! assoc-in [:appenders :spit :enabled?] false)
(timbre/swap-config! assoc-in [:appenders :spit] (appenders/spit-appender {:fname "log.txt"}))
然后与音色v3.4.0 set-config保持一致!语法你 引用了你的问题:
(def set-log-config-param! (partial timbre/swap-config! assoc-in))
Imho这样可以简化音色v3和v4之间的配置转换并制作路径 params比同等的
更具可读性(set-log-config-param! [:appenders :println :enabled?] false)
(set-log-config-param! [:appenders :spit] (appenders/spit-appender {:fname "log.txt"}))
答案 1 :(得分:0)
我得到了维护者的快速回复:
“吐温(文件)追加器的使用记录在自述文件https://github.com/ptaoussanis/timbre#file-appender”
以下是回答问题的代码:
;; (:require [taoensso.timbre.appenders.core :as appenders]) ; Add to ns
(timbre/merge-config!
{:appenders {:println nil ; Remove println appender
:spit (appenders/spit-appender {:fname log-file-name})}})
不幸的是,即使使用:println nil
mapentry,相同的输出也将转到两个地方。所以这个答案是不正确的。