Когда clipspy
обнаруживает ошибку, возникает исключение CLIPSError
, включающее вывод werror
в качестве сообщения.Поэтому вы можете в основном полагаться на это.
Тем не менее, поскольку API-интерфейсы CLIPS C не полностью согласованы, вы можете найти какой-то угловой случай.Чаще всего исключение CLIPSError
может не содержать сообщения об ошибке, поскольку CLIPS не всегда печатает сообщение в случае ошибки.
Если вы хотите прочитать выходные данные CLIPS, вы можете сделать это с помощью средств маршрутизации, которыедокументированы в CLIPS Advanced Programming Guide
.Clipspy API-интерфейсы маршрутизатора очень близки к интерфейсам C.
Вы также можете использовать LoggingRouter
для управления выводом CLIPS с помощью регистрации в 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!