Skip to main content

JSON formatter for graylog JSON extractor.

Project description

GrayLogJSONFormatter formatted LogRecord as JSON object for graylog JSON extractor. JSON object include LogRecord attributes as default_keys and include extra attributes: source, message, asctime and data.



from logging import config

        'version': 1,
        'disable_existing_loggers': True,
        'formatters': {
            'graylog': {
                '()': 'graylog_json_formatter.GrayLogJSONFormatter',
                'format': '({levelname}) | {name} | [{asctime}]: '
                          'File {pathname}:{lineno}" - {funcName}() | {message}',
                'style': '{',
                'source': 'test',
                'environment': 'testing',
                'keys': {
                    'name', 'levelno', 'levelname',
                    'pathname', 'filename', 'module', 'lineno', 'funcName',
                    'created', 'asctime', 'msecs', 'relativeCreated',
                    'thread', 'threadName', 'process',
                    'message', 'data',
                    'exc_text', 'stack_info',
                'extra': {'service': 'my-service'},
        'handlers': {
            'console': {
                'level': 'DEBUG',
                'class': 'logging.StreamHandler',
                'formatter': 'graylog',
            'graylog': {
                'level': 'DEBUG',
                'class': 'logging.handlers.SysLogHandler',
                'formatter': 'graylog',
                'address': ('localhost', 10000),
        'loggers': {
            'test': {
                'level': 'DEBUG',
                'handlers': ['console', 'graylog'],
                'propagate': False,

    logger = logging.getLogger('test')


# extra usage
logger.debug('test message: % | %s', 1, 2, extra={'data': {'key': 'value', 'int_key': 12})

Graylog extract extra as data-key and data-int_key fields.

extra argument may be callable or string with dotted path to callable attribute:

'extra': lambda record: {'service': 'service-func'}

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for graylog-json-formatter, version 1.0.1
Filename, size File type Python version Upload date Hashes
Filename, size graylog_json_formatter-1.0.1-py2.py3-none-any.whl (5.6 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size graylog-json-formatter-1.0.1.tar.gz (3.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page