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

[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]

  • String formatting only works for %s not for %d, the argument is stil available but the message misses the value
  • Environment variable only works using Environment while full uppercase is the best practice for environment variables

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.0.9.tar.gz (8.5 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: seqpylogger-1.0.9.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.5

File hashes

Hashes for seqpylogger-1.0.9.tar.gz
Algorithm Hash digest
SHA256 199a60b650d88a355b258bca4dd2ae036fe20a4a0b3ccfc43e11869f45f79b51
MD5 e279e13bb9ff090ed33c169a79c740f8
BLAKE2b-256 10bdd1686feb14325cc18e47695678ec3687fefa2e6cdf7ef9fcf6dd337cffdf

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