【发布时间】:2014-11-01 15:35:42
【问题描述】:
我的 init.el 中有一个方便的 defun 来做一些日志记录
(defvar log4me::loglevel 5
"Global loglevel.")
(defun log4me (level logmsg)
"Log message."
(interactive)
(when (>= level log4elisp::loglevel)
(message logmsg))))
它有点工作,但不知何故我经常这样做
(log4me somelevel (format "mymessage with %d" 1))
所以我找到了我认为可以像这样使用的 emacs lisp &rest 参数:
(defun log4me (level logmsg &rest formatparams)
"Log message."
(interactive)
(when (<= level log4elisp::loglevel)
(message (format logmsg formatparams))))
(log4me 3 "Hello %ust!" 1)
导致“格式说明符与参数类型不匹配”错误,因为 formatparams 实际上是 (1) 而不是 1。
有没有一种很好的方法可以将格式参数包含到 log4elisp defun 中,并使它们作为“普通”参数(不是单个列表)到达格式函数调用中?
【问题讨论】:
-
查看函数APPLY
-
@Rainer Joswig 谢谢!我觉得我需要的只是一个指向文档中正确位置的指针。应用效果很好。您想提供一个简短的答案以便我接受吗?