Python logging.Formatter class for syslog style messages
Go to file
2022-02-02 12:04:38 +01:00
requirements Initial commit 2022-02-02 10:37:07 +01:00
src/syslogformat added code and readme contents 2022-02-02 12:03:45 +01:00
tests Initial commit 2022-02-02 10:37:07 +01:00
.coveragerc Initial commit 2022-02-02 10:37:07 +01:00
.gitignore Initial commit 2022-02-02 10:37:07 +01:00
coverage.sh Initial commit 2022-02-02 10:37:07 +01:00
pyproject.toml Initial commit 2022-02-02 10:37:07 +01:00
README.md added code and readme contents 2022-02-02 12:03:45 +01:00
setup.cfg removed install requirement 2022-02-02 12:04:38 +01:00

syslogformat

Python logging.Formatter class for syslog style messages

Usage

Example with in-code setup:

# example.py
import logging
from syslogformat import SyslogFormatter

log = logging.getLogger()
hdl = logging.StreamHandler()
fmt = SyslogFormatter()
hdl.setFormatter(fmt)
hdl.setLevel(logging.NOTSET)
log.addHandler(hdl)
log.setLevel(logging.NOTSET)

log.debug("foo")
log.info("bar")
log.warning("baz")
try:
    raise ValueError("this is bad")
except ValueError as e:
    log.exception("oh no")

This is what the output should be like:

<7>DEBUG    | foo
<6>INFO     | bar
<4>WARNING  | baz | example.<module>.14
<3>ERROR    | oh no | example.<module>.18 | 'Traceback (most recent call last):\n  File "/path/to/example.py", line 16, in <module>\n    raise ValueError("this is bad")\nValueError: this is bad'

Same configuration with YAML file to be loaded into logging.config.dictConfig:

version: 1
formatters:
  custom:
    (): syslogformat.SyslogFormatter
handlers:
  console:
    class: logging.StreamHandler
    level: NOTSET
    formatter: custom
    stream: ext://sys.stdout
root:
  level: NOTSET
  handlers: [console]

Installation

pip install syslogformat

Dependencies

Python Version 3

Building from source

Run python -m build