g3logPython
Python bindings for g3log
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:
- a binding layer in C++
- a python wrapper aroung the binding layer, using pybind11
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.
License
Unlicense license
Build and Install
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
Example
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
Technical aspects are described on this page.