https://github.com/idlesign/systemd-logging
Simplifies logging for systemd
https://github.com/idlesign/systemd-logging
logging python python3 systemd
Last synced: 8 months ago
JSON representation
Simplifies logging for systemd
- Host: GitHub
- URL: https://github.com/idlesign/systemd-logging
- Owner: idlesign
- License: bsd-3-clause
- Created: 2019-10-14T11:10:30.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-02-04T12:40:35.000Z (over 4 years ago)
- Last Synced: 2025-04-16T00:13:02.568Z (about 1 year ago)
- Topics: logging, python, python3, systemd
- Language: Python
- Homepage: https://github.com/idlesign/systemd-logging
- Size: 86.9 KB
- Stars: 26
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG
- Contributing: CONTRIBUTING
- License: LICENSE
Awesome Lists containing this project
README
systemd-logging
===============
https://github.com/idlesign/systemd-logging
|release| |lic| |coverage|
.. |release| image:: https://img.shields.io/pypi/v/systemd-logging.svg
:target: https://pypi.python.org/pypi/systemd-logging
.. |lic| image:: https://img.shields.io/pypi/l/systemd-logging.svg
:target: https://pypi.python.org/pypi/systemd-logging
.. |coverage| image:: https://img.shields.io/coveralls/idlesign/systemd-logging/master.svg
:target: https://coveralls.io/r/idlesign/systemd-logging
Description
-----------
*Simplifies logging for systemd*
**Requires Python 3.6+**
* No need to compile (pure Python), uses ``libsystemd.so``.
* Simplified configuration.
* Just logging. Nothing more.
Usage
-----
.. code-block:: python
import logging
from systemdlogging.toolbox import init_systemd_logging
# This one line in most cases would be enough.
# By default it attaches systemd logging handler to a root Python logger.
init_systemd_logging() # Returns True if initialization went fine.
# Now you can use logging as usual.
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
logger.debug('My debug message')
try:
raise ValueError('Log me please')
except ValueError:
# Additional context can be passed in extra.context.
logger.exception('Something terrible just happened', extra={
'message_id': True, # Generate message ID automatically.
'context': {
'FIELD1': 'one',
'FIELD2': 'two',
}
}, stack_info=True)
Read the docs to find out more.
Documentation
-------------
https://systemd-logging.readthedocs.org/
Debug runs
~~~~~~~~~~
1. Run your script with:
.. code-block::
$ sudo systemd-run -u debugme -t /usr/bin/python /home/my/testme.py
2. Watch its journal with:
.. code-block::
$ journalctl -u debugme -f -o verbose