gpt4 book ai didi

Racket:记录到文件

转载 作者:行者123 更新时间:2023-12-04 17:44:45 26 4
gpt4 key购买 nike

我正在编写一个需要记录信息的 Racket 程序,但我想将日志存储在一个文件中。我的第一次尝试是使用“with-logging-to-port”并使用“open-output-file”来创建一个输出端口。

#lang racket
(require racket/logging)
(define (identity/log x)
(log-info "returning ~a" x) x)

(with-logging-to-port (open-output-file "testing.txt")
(λ () (identity/log 4)) 'info)

但是,当我之后打开文件时,它是空白的!此外,我不能多次运行它,因为“打开输出文件”给了我一个错误,即该文件已经存在。

最佳答案

我很确定原因是您没有正确关闭文件。这应该有效:

(let ((out (open-output-file "testing.txt"
; just to not get an error on consecutive runs
#:exists 'append)))
(with-logging-to-port out
(λ () (identity/log 4)) 'info)
(close-output-port out))

您可以使用 call-with-output-file 而不是做家务。

(call-with-output-file "testing.txt"
(λ (out)
(with-logging-to-port out
(λ () (identity/log 4)) 'info))
#:exists 'append)

关于Racket:记录到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39166587/

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