我对在C程序中使用Python日志模块很感兴趣。我试着看一下http://docs.python.org/2/extending/embedding.html上的文档,但我还是被卡住了。在
这就是我想要完成的(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:
^{pr2}$不过,我不知道如何创建socketHandler。有什么提示吗?谢谢!在
在pythoncapi中,就像在Python中一样,“创建对象”只是调用它的类型
不幸的是,所有的事情都很烦人。根据您希望从C中执行的操作,您可以提供一组在导入时传递给C的助手模块(请参见https://github.com/couchbase/couchbase-python-client/blob/master/couchbase/_bootstrap.py示例)。在
无论如何,Python是一种非常简单的语言,无论是内部还是外部。因此,让我们把它分解。在
PEP-7表示C89,但在C99中更容易显示:
^{pr2}$现在,构建套接字处理程序。从C API调用 用PyObject_CallObject完成,它可以处理任何定义了
__call__
的内容 不过,首先,你需要建立自己的论点。。在我不会在这里演示如何进行arg构建,甚至不会正确地进行错误检查或引用计数。请注意,在C API中,如果函数失败,它将返回
NULL
并引发异常(除非另有说明)。在实际上,我推荐的是计算出在C中实际需要使用多少
logging
模块,并将该功能封装在一个可以从C调用的更简单的子集中。在相关问题 更多 >
编程相关推荐