Logging from C/C++ into Python
An example of everything brought together is reusing the Python logging module directly from C. We want a few macros, such as info
, error
, and debug
that can all handle a variable number of arguments and works as if we are calling a simple printf
method.
To achieve this, we must make a Python logging backend for our C/C++ code. We need an initialization function to tell Python about our output logfile
, and some wrappers for each info
, error
, and debug
. We can simply write the public cdef
wrappers as:
import logging cdef public void initLoggingWithLogFile(const char * logfile): logging.basicConfig(filename = logfile, level = logging.DEBUG, format = '%(levelname)s %(asctime)s: %(message)s', datefmt = '%m/%d/%Y %I:%M:%S') cdef public void python_info(char * message): logging.info(message) cdef public void python_debug(char * message): logging.debug(message) cdef public void...