Skip to main content

No project description provided

Project description

structlog-sentry

What Where
Documentation https://github.com/kiwicom/structlog-sentry
Maintainer @paveldedik

Based on https://gist.github.com/hynek/a1f3f92d57071ebc5b91

Installation

Install the package with pip:

pip install structlog-sentry

Usage

This module is intended to be used with structlog like this:

import sentry_sdk
import structlog
from structlog_sentry import SentryProcessor


sentry_sdk.init()  # pass dsn in argument or via SENTRY_DSN env variable

structlog.configure(
    processors=[
        structlog.stdlib.add_log_level,  # required before SentryProcessor()
        SentryProcessor(level=logging.ERROR),
    ],
    logger_factory=...,
    wrapper_class=...,
)


log = structlog.get_logger()

Do not forget to add the structlog.stdlib.add_log_level processor before SentryProcessor. The SentryProcessor class takes the following arguments:

  • level - events of this or higher levels will be reported to Sentry, default is WARNING
  • active - default is True, setting to False disables the processor

Now exceptions are automatically captured by Sentry with log.error():

try:
    1/0
except ZeroDivisionError:
    log.error()

try:
    resp = requests.get(f"https://api.example.com/users/{user_id}/")
    resp.raise_for_status()
except RequestException:
    log.error("request error", user_id=user_id)

Logging calls with no sys.exc_info() are also automatically captured by Sentry:

log.info("info message", scope="accounts")
log.warning("warning message", scope="invoices")
log.error("error message", scope="products")

Testing

To run all tests:

tox

Note that tox doesn't know when you change the requirements.txt and won't automatically install new dependencies for test runs. Run pip install tox-battery to install a plugin which fixes this silliness.

Contributing

Create a merge request and assign it to @paveldedik for review.

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

structlog-sentry-1.0.0.tar.gz (3.5 kB view details)

Uploaded Source

Built Distribution

structlog_sentry-1.0.0-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file structlog-sentry-1.0.0.tar.gz.

File metadata

  • Download URL: structlog-sentry-1.0.0.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1

File hashes

Hashes for structlog-sentry-1.0.0.tar.gz
Algorithm Hash digest
SHA256 20667e086d2a66b9cd54c750d6945c5c7b7fe9d3eef53b2a25e9b74d02dcc0a9
MD5 1005bee23ad6a72b1ff2729e1d1835bc
BLAKE2b-256 ccefaf944c6511a912d9cf847270c48ed8c48eca758a9d9460a1f26ab0acdff0

See more details on using hashes here.

File details

Details for the file structlog_sentry-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: structlog_sentry-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1

File hashes

Hashes for structlog_sentry-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 afad0d2474597ac17d138f93d104992bc28f54be7a3084c3305a40f3169ebe5c
MD5 b93d67571a6eaf7dedfeabb1288683d3
BLAKE2b-256 087c735dc23feaf9af306338dfb56139cae17213284ad1ae84f48dd632cbbcfb

See more details on using hashes here.

Supported by

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