我希望在C程序中使用Python日志模块。我已经阅读了http://docs.python.org/2/extending/embedding.html上的文档,但是我卡住了。
这是我想要实现的(Python等效):
这是我在C语言中尝试的内容:
这是我想要实现的(Python等效):
import logging, logging.handlers
logger = logging.getLogger('')
logger.setLevel(logging.DEBUG)
socketHandler = logging.handlers.SocketHandler('localhost', logging.handlers.DEFAULT_TCP_LOGGING_PORT)
logger.addHandler(socketHandler)
logger.debug("whats up, doc?")
这是我在C语言中尝试的内容:
PyObject *logging, *get_logger, *pValue, *set_level, *strargs;
*logging = PyImport_ImportModule("logging")
*get_logger = PyObject_GetAttrString(logging, "getLogger")
*pValue = PyObject_CallObject(get_logger, NULL)
*set_level = PyObject_GetAttrString(logging, "setLevel")
*strargs = PyString_FromString("logging.DEBUG")
pValue = PyObject_CallObject(set_level, strargs);
我不确定如何创建socketHandler。有什么提示吗?谢谢!
PyRun_X
函数,其中一些允许您将值传递到上下文中。但是您可能不需要这些函数,因为如果我正确理解文档的话,那么您就无法再使用解释器进行设置了。另外,您需要哪些参数来设置记录器?(通过“设置”我指的是“最后一个logger.debug(...)
调用之前的所有内容”) - millimoose