Skip to main content

python loghandler for seq

Project description

SeqPyLogger

PyPI version

SeqPyLogger is a python loghandler for seq.

Usage

import os

os.environ["SEQ_APIKEY"] = "xSxExQxAxPxIxKxExYx"
os.environ["SEQ_SERVER"] = "http://localhost:8794/"
os.environ["Environment"] = "Staging"

import logging
from seqpylogger import SeqPyLogger

root = logging.getLogger()
root.setLevel(logging.INFO)
seqLogger = SeqPyLogger(buffer_capacity=10)
root.addHandler(seqLogger)

logger = logging.getLogger("MyLogger")

logger.debug("Debug log message")
logger.info("Informational log message")
logger.warning("Warning log message")
logger.error("Error log message")
logger.critical("Critical log message")
logger.fatal("Critical log message")

logger.info("Test log message with argument %s", "dummy argument")
logger.info("Test log message with arguments %s, %s", "dummy argument 1", "dummy argument 2")

try:
    raise Exception("Some issue")
except:
    logging.exception("An error occured but now we have the stacktrace")
    # logging.error("There was an error", exc_info=1)  # alternative to .exception()

# logs are flushed every 10 seconds and every 10 logs

An alternative way of setting the handler is using the dictConfig

import os
import time
import logging
import logging.config

os.environ["SEQ_APIKEY"] = "xSxExQxAxPxIxKxExYx"
os.environ["SEQ_SERVER"] = "http://localhost:8794/"
os.environ["Environment"] = "Staging"

logger_config = {
    "version": 1,
    "disable_existing_loggers": True,
    "root": {
        "level": logging.INFO,
        "handlers": ["seq"]
    },
    "handlers": {
        "seq": {
            "level": logging.INFO,
            "class": "seqpylogger.SeqPyLogger"
        },
    },
}

logging.config.dictConfig(logger_config)

logging.info("Example message")

Installation

pip install seqpylogger

Test install

Used for development on the package.

sudo python3 -m pip install -U .

Examples

try:
    raise Exception("Some issue")
except:
    logging.exception("An error occured but now we have the stacktrace")
    # logging.error("There was an error", exc_info=1)  # alternative to .exception()

try:
    raise Exception("Some issue")
except:
    logging.fatal("This time no stacktrace")

try:
    raise Exception("Some issue")
except:
    logging.fatal("Stacktrace is not limited to ERROR", exc_info=1)

Images

Screenshot image

Changelog

inspired by Keep a changelog

[2024-08-15]

  • [Added] object serialization support
  • [Added] fallback parse when parsing fails

[2024-07-16]

  • [Added] allow for extra named attributes
  • [Changed] ENVIRONMENT with capital letters will be recognized first

[2023-02-15]

  • [Fixed] Formatting using %d broke the internal formatter

[2023-01-08]

  • [Fixed] Update dependencies in Pipfile.lock
  • [Added] Tests for basic usage (added script pipenv run tests)

[2021-08-20]

  • [Fixed] Version file removed as this broke pip installation
  • [Fixed] Missing .version file in MANIFEST.md broke pip installation

[2021-08-13]

  • [Fixed] Replaced badge.fury.io pypi badge with shields.io
  • [Changed] Added tagging in create_release.sh
  • [Changed] Used atexit to register flush on exit
  • [Fixed] Fixed issue of duplicate logs when doing a manualflush

[2021-03-22]

  • [Fixed] Update dependencies in Pipfile.lock

[2020-12-29]

  • [Fixed] old dependencies for development

[2020-07-17]

  • [Fixed] .msg and arg objects always converted to str
  • [Changed] internal logs nolonger use root logger

[2020-05-13]

  • [Fixed] Removed print line when adding seq url without trailing slash
  • [Changed] README example to fully work if copied
  • [Added] changelog to README

[Unreleased]

  • Environment variable only works using Environment while full uppercase is the best practice for environment variables
  • logger.info("", extra={}) parameters are not shown in seq

Project details


Download files

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

Source Distribution

seqpylogger-1.1.1.tar.gz (14.4 kB view details)

Uploaded Source

File details

Details for the file seqpylogger-1.1.1.tar.gz.

File metadata

  • Download URL: seqpylogger-1.1.1.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for seqpylogger-1.1.1.tar.gz
Algorithm Hash digest
SHA256 089bdaf91fd9d8d0f1356bad60d27dab1c3fc463998b64979ed140696ac75054
MD5 934e335f1195c501380249f802bb2762
BLAKE2b-256 0b8fa79865a8f3f7ee2164b6724756bf44a934ca8024edeaba228460ce962e34

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page