首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >音色‘`set config!’已经改变了原则性,因此不知道如何使用它输出std err/out到文件。

音色‘`set config!’已经改变了原则性,因此不知道如何使用它输出std err/out到文件。
EN

Stack Overflow用户
提问于 2016-04-13 04:44:34
回答 2查看 648关注 0票数 6

我试图使用https://github.com/ptaoussanis/timbre登录到一个文件,而不是控制台。下面是我找到的一些关于如何做到这一点的文档:

代码语言:javascript
复制
; 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!现在有一个参数--散列映射。而且我找不到任何文档来帮助我将上面的“两个params”代码翻译成新的“一个param”代码。

我知道那里有一个非常相似的问题。这个问题有实际的代码,所以更具体。我也提出了一个问题。上面的代码基本上是直接来自这里

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-15 21:19:47

若要登录到音色v4.0.0 (2015年6月10日)中的文件而不是控制台,可以执行以下操作:

代码语言:javascript
复制
(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"})}})

请注意,在纯音器v4.3.1中,以下内容不会删除或禁用println (控制台)附录:

代码语言:javascript
复制
(timbre/merge-config! {:appenders {:println nil}})

相关问题可以在这里找到,https://github.com/ptaoussanis/timbre/issues/163

附加:由于Timbre允许简单地使用标准clojure修改它的配置映射timbre/*config*,您也可以使用

代码语言:javascript
复制
(timbre/swap-config! assoc-in [:appenders :spit :enabled?] false)
(timbre/swap-config! assoc-in [:appenders :spit] (appenders/spit-appender {:fname "log.txt"}))

在此基础上,您还可以定义一个简单的助手:

代码语言:javascript
复制
(def set-log-config-param! (partial timbre/swap-config! assoc-in))

然后与音色v3.4.0集-配置保持一致!您在问题中引用的语法:

代码语言:javascript
复制
(set-log-config-param! [:appenders :println :enabled?] false)
(set-log-config-param! [:appenders :spit]   (appenders/spit-appender {:fname "log.txt"}))

这简化了音色v3和v4之间的配置转换,并使到params的路径比等效的路径更具可读性。

代码语言:javascript
复制
(timbre/merge-config! {:appenders {:println {:enabled? false}}})
(timbre/merge-config! {:appenders {:spit    (appenders/spit-appender {:fname "log.txt"})}})
票数 4
EN

Stack Overflow用户

发布于 2016-04-13 05:13:52

我从维护人员那里得到了快速的回应:

https://github.com/ptaoussanis/timbre#file-appender的自述文件中记录了spit (文件)附录的使用情况

下面是回答问题的代码:

代码语言:javascript
复制
;; (: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映射项,相同的输出也会到达两个位置。所以这个答案是不正确的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36588781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档