是否可以使用ErrorStream从剪辑中读取clipspy?在pyclips中,它是这样工作的:clips.ErrorStream.Read()。
用clipspy做这件事有意义吗,或者所有的错误都是作为异常抛出的,并且可以用clips.CLIPSError捕获?
发布于 2018-10-16 14:32:08
当clipspy检测到错误时,它会引发一个CLIPSError异常,将werror的输出嵌入到消息中。因此,你可以很大程度上依赖它。
尽管如此,由于CLIPS C API并不完全一致,所以您可能会发现一些角落的情况。最常见的情况是,CLIPSError异常可能不包含任何错误消息,因为CLIPS并不总是在发生错误时打印消息。
如果您想要读取剪辑输出,可以通过使用CLIPS Advanced Programming Guide中记录的路由工具来实现这一点。剪报间谍路由器API与C非常接近。
您还可以使用LoggingRouter管理带有Python的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!https://stackoverflow.com/questions/52831139
复制相似问题