1

是否可以使用从剪辑中读取 ErrorStream clipspy?使用pyclips,它以这种方式工作:clips.ErrorStream.Read()

这样做是否有意义clipspy,或者所有错误都作为异常抛出并且可以被捕获clips.CLIPSError

4

1 回答 1

1

clipspy检测到错误时,它会引发CLIPSError嵌入werroras 消息输出的异常。因此,您主要可以依靠它。

然而,由于 CLIPS C API 并不完全一致,您可能会发现一些极端情况。最常见的情况是,CLIPSError异常可能不包含任何错误消息,因为 CLIPS 并不总是在出现错误时打印消息。

如果您想阅读 CLIPS 输出,您可以使用 CLIPS 中记录的路由工具来做到这一点Advanced Programming Guide。Clipspy路由器 API非常接近 C 的。

您还可以使用LoggingRouterPython 日志记录来管理 CLIPS 输出。当您想将 CLIPS 集成到 python 服务中时,这很方便。

import clips
import logging

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s')

env = clips.Environment()
router = clips.LoggingRouter()

router.add_to_environment(env)

env.eval('(printout t "Hello World!" crlf)')

输出

2018-10-16 17:29:01,829 - INFO - Hello World!
于 2018-10-16T14:32:08.347 回答