是否可以使用clipspy
从剪辑中读取ErrorStream?
使用pyclips
,它的工作方式是:clips.ErrorStream.Read()
。
使用clipspy
甚至有意义,还是将所有错误都作为异常抛出并可以用clips.CLIPSError
捕获?
答案 0 :(得分:1)
clipspy
检测到错误时,将引发CLIPSError
异常,将werror
的输出作为消息嵌入。因此,您基本上可以依靠它。
尽管如此,由于CLIPS C API并不完全一致,因此您可能会发现一些极端情况。最常见的情况是,CLIPSError
异常可能不包含任何错误消息,因为CLIPS并不会在出现错误时总是显示消息。
如果您想读取CLIPS输出,则可以使用CLIPS Advanced Programming Guide
中记录的路由功能来完成。简陋的router APIs与C语言非常接近。
您还可以使用LoggingRouter
通过Python日志管理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!