Python logging.Formatter class for syslog style messages
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Daniil Fajnberg 59f9fdfcd4 removed install requirement 8 months ago
requirements Initial commit 8 months ago
src/syslogformat added code and readme contents 8 months ago
tests Initial commit 8 months ago
.coveragerc Initial commit 8 months ago
.gitignore Initial commit 8 months ago
README.md added code and readme contents 8 months ago
coverage.sh Initial commit 8 months ago
pyproject.toml Initial commit 8 months ago
setup.cfg removed install requirement 8 months ago

README.md

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