This library provides python3 bindings for g3log + g3sinks (currently logrotate, syslog, and a color-terminal output). Calls can be made both from python and C++, retaining the thread-safety of g3log. The advantage is that you can use the same logger both in c++ and python parts of a multi-language project. Note that this project is made of two parts:
The binding layer modifies the interface of g3log+sinks to make it easily wrappable with pybind11. Exported methods from the binding layer can also be called from C++, providing a different interface to g3log.
git clone https://github.com/JoelStienlet/g3logPython
For the C++ bindings:
mkdir build_bindings && cd build_bindings && cmake .. && make && sudo make install
Then build the python wrapper:
python3 setup.py install
See the Examples directory for more advanced usage, and examples of different sink backends.
#!/usr/bin/env python3 import g3logPython as log logger = log.get_ifaceLogWorker(False) journaldSink = logger.SysLogSinks.new_Sink("journald","id=g3logPython") journaldSink.echoToStderr() log.debug("hello world!")
Technical aspects are described on this page.