gpt4 book ai didi

clojure - 音色 `set-config!` 已更改数量,因此不知道如何使用它来将 std err/out 输出到文件

转载 作者:行者123 更新时间:2023-12-02 02:39:50 26 4
gpt4 key购买 nike

我正在尝试使用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! 现在采用一个参数 - HashMap 。我找不到任何文档可以帮助我将上述“两个参数”代码转换为新的“一个参数”代码。

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

最佳答案

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

(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"})}})

请注意,在 timbre v4.3.1 中,以下内容不会删除或禁用 println(控制台)附加程序:

(timbre/merge-config! {:appenders {:println nil}})

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

添加:由于 Timbre 允许修改其配置映射 timbre/*config* 只需使用标准的 clojure API,您也可以使用

(timbre/swap-config! assoc-in [:appenders :spit :enabled?] false)
(timbre/swap-config! assoc-in [:appenders :spit] (appenders/spit-appender {:fname "log.txt"}))

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

(def set-log-config-param! (partial timbre/swap-config! assoc-in))

然后与v3.4.0 set-config的音色保持一致!语法你在您的问题中引用了:

(set-log-config-param! [:appenders :println :enabled?] false)
(set-log-config-param! [:appenders :spit] (appenders/spit-appender {:fname "log.txt"}))

恕我直言,这简化了音色 v3 和 v4 之间的配置转换,并使路径参数比等效参数更具可读性

(timbre/merge-config! {:appenders {:println {:enabled? false}}})
(timbre/merge-config! {:appenders {:spit (appenders/spit-appender {:fname "log.txt"})}})

关于clojure - 音色 `set-config!` 已更改数量,因此不知道如何使用它来将 std err/out 输出到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36588781/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com