pyclips clips.ErrorStream.Read() 的 clipspy 吊坠
clipspy pendant for pyclips clips.ErrorStream.Read()
是否可以使用 clipspy
从剪辑中读取 ErrorStream?
对于 pyclips
,它是这样工作的:clips.ErrorStream.Read()
.
用 clipspy
这样做是否有意义,或者所有错误都作为异常抛出并且可以用 clips.CLIPSError
捕获?
当clipspy
检测到错误时,它会引发一个CLIPSError
异常,并将werror
的输出作为消息嵌入。因此,您可以主要依靠它。
然而,由于 CLIPS C API 并不完全一致,您可能会发现一些特殊情况。最常见的是,CLIPSError
异常可能不包含任何错误消息,因为 CLIPS 并不总是在出现错误时打印消息。
如果您想读取 CLIPS 输出,您可以使用 CLIPS Advanced Programming Guide
中记录的路由工具来实现。 clipspy 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!
是否可以使用 clipspy
从剪辑中读取 ErrorStream?
对于 pyclips
,它是这样工作的:clips.ErrorStream.Read()
.
用 clipspy
这样做是否有意义,或者所有错误都作为异常抛出并且可以用 clips.CLIPSError
捕获?
当clipspy
检测到错误时,它会引发一个CLIPSError
异常,并将werror
的输出作为消息嵌入。因此,您可以主要依靠它。
然而,由于 CLIPS C API 并不完全一致,您可能会发现一些特殊情况。最常见的是,CLIPSError
异常可能不包含任何错误消息,因为 CLIPS 并不总是在出现错误时打印消息。
如果您想读取 CLIPS 输出,您可以使用 CLIPS Advanced Programming Guide
中记录的路由工具来实现。 clipspy 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!