【发布时间】:2011-02-10 15:26:49
【问题描述】:
我是 CRAN 上 logging package 的作者,我不认为自己是一个 R 程序员,所以我尽量使它与 Python standard logging package 的代码兼容,但现在我有一个问题。我希望它能让我有机会学习更多的 R!
这是关于分层记录器的。在 Python 中,我将创建一个记录器并将其发送记录记录:
l = logging.getLogger("some.lower.name")
l.debug("test")
l.info("some")
l.warn("say no")
在我的 R 包中,您不创建向其发送消息的记录器,而是调用一个函数,其中一个参数是记录器的名称。像
logdebug("test", logger="some.lower.name")
loginfo("some", logger="some.lower.name")
logwarn("say no", logger="some.lower.name")
问题在于,每次要向其发送日志消息时,您都必须重复记录器的名称。我在想,我可能会创建一个部分应用的函数对象并调用它,比如
logdebug <- curry(logging::logdebug, logger="some.lower.logger")
但是我需要为所有调试功能这样做......
R 用户会如何处理这个问题?
【问题讨论】:
-
伙计们,我收到了两个有趣的答案,都对我的小型库增加了要求。从长远来看,我认为我更喜欢基于
ReferenceClasses的那个,但从短期来看,proto允许我使用 R2.11...
标签: oop r coding-style