[systemd-devel] [RFC PATCH] systemd-python: add SYSLOG_IDENTIFIER to JournalHandler

Steven Hiscocks steven-systemd at hiscocks.me.uk
Mon Apr 22 13:53:55 PDT 2013


On 22/04/13 21:31, Zbigniew Jędrzejewski-Szmek wrote:
> Otherwise, we get SYSLOG_IDENTIFIER=python or something
> similar, which is completely useless.
> ---
> Thoughts?
>
> Specifically, I'm not sure if is worthwhile to allow overriding
> SYSLOG_IDENTIFIER per message. Maybe this ability should be removed.
>
> Zbyszek
>
>   src/python-systemd/journal.py | 11 ++++++++++-
>   1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/src/python-systemd/journal.py b/src/python-systemd/journal.py
> index 6c740b0..39db4bb 100644
> --- a/src/python-systemd/journal.py
> +++ b/src/python-systemd/journal.py
> @@ -469,9 +469,15 @@ class JournalHandler(_logging.Handler):
>           The following journal fields will be sent:
>           `MESSAGE`, `PRIORITY`, `THREAD_NAME`, `CODE_FILE`, `CODE_LINE`,
>           `CODE_FUNC`, `LOGGER` (name as supplied to getLogger call),
> -        `MESSAGE_ID` (optional, see above).
> +        `MESSAGE_ID` (optional, see above), `SYSLOG_IDENTIFIER` (optional).
>           """
>
> +        def __init__(self, level=_logging.NOTSET, SYSLOG_IDENTIFIER=None):
> +                super(JournalHandler, self).__init__(level)
> +                self._SYSLOG_IDENTIFIER = (_sys.argv[0]
> +                                           if SYSLOG_IDENTIFIER is None
> +                                           else SYSLOG_IDENTIFIER)
> +
>           def emit(self, record):
>                   """Write record as journal event.
>
> @@ -485,8 +491,11 @@ class JournalHandler(_logging.Handler):
>                           msg = self.format(record)
>                           pri = self.mapPriority(record.levelno)
>                           mid = getattr(record, 'MESSAGE_ID', None)
> +                        sid = getattr(record, 'SYSLOG_IDENTIFIER',
> +                                              self._SYSLOG_IDENTIFIER)
>                           send(msg,
>                                MESSAGE_ID=mid,
> +                             SYSLOG_IDENTIFIER=sid,
>                                PRIORITY=format(pri),
>                                LOGGER=record.name,
>                                THREAD_NAME=record.threadName,
>
How about having the value as `__name__`, but`_sys.argv[0]` if `__name__ 
== "__main__`?

-- 
Steven Hiscocks


More information about the systemd-devel mailing list