Pure python logging handler for writing logs to the journald using native protocol
Project Links
Meta
Author: Dmitry Orlov
Requires Python: >=3.8,<4.0
Classifiers
Intended Audience
- Developers
License
- OSI Approved :: MIT License
Operating System
- POSIX :: Linux
Programming Language
- Python
- Python :: 3
- Python :: 3.8
- Python :: 3.9
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: Implementation :: CPython
logging-journald
Pure python logging handler for writing logs to the journald using native protocol.
import logging
from logging_journald import JournaldLogHandler, check_journal_stream
# Use python default handler
LOG_HANDLERS = None
if (
# Check if program running as systemd service
check_journal_stream() or
# Check if journald socket is available
JournaldLogHandler.SOCKET_PATH.exists()
):
LOG_HANDLERS = [JournaldLogHandler()]
logging.basicConfig(level=logging.INFO, handlers=LOG_HANDLERS)
logging.info("Hello logging world.")
MESSAGE_ID field
As defined in catalog documentation:
A
128-bitmessage identifier ID for recognizing certain message types, if this is desirable. This should contain a 128-bit ID formatted as a lower-case hexadecimal string, without any separating dashes or suchlike. This is recommended to be a UUID-compatible ID, but this is not enforced, and formatted differently. Developers can generate a new ID for this purpose with systemd-id128 new.
So you're free to choose how you want to act. By default, MESSAGE_ID is generated as a hash of the message and some
static fields. But you can disable this by passing use_message_id=False to the class constructor.
from logging_journald import JournaldLogHandler
...
handler = JournaldLogHandler(use_message_id=False)
...
0.6.11
Dec 13, 2024
0.6.10
Dec 03, 2024
0.6.9
Aug 09, 2024
0.6.8
Aug 09, 2024
0.6.7
Jan 12, 2024
0.6.6
May 12, 2023
0.6.5
May 12, 2023
0.6.4
Nov 30, 2022
0.6.3
Nov 30, 2022
0.6.2
Aug 09, 2022
0.6.1
Aug 09, 2022
0.6.0
Aug 09, 2022
Wheel compatibility matrix
Files in release
No dependencies