Skip to content

Remote Logger is a Python library that simplifies cloud logging services such as Sentry and Stackdriver, and allows you to easily integrate them with Python's native logging.

License

HenleyKuang/remote-logger

Repository files navigation

image

image

image

Remote Logger

Installation

pip install remote-logger

Examples

Initializing RemoteLogger with Sentry

import logging

from remote_logger.clients.sentry_logger_client import SentryLoggerClient
from remote_logger.remote_logger_handler import RemoteLoggerHandler

LOGGER = logging.getLogger(__name__)

dsn = "https://<key>@sentry.io/<project>"
sentry_client = SentryLoggerClient(dsn=dsn)
sentry_handler = RemoteLoggerHandler(client=sentry_client)
sentry_handler.setLevel(logging.ERROR)
LOGGER.addHandler(sentry_handler)

Initializing RemoteLogger with Stackdriver

import logging

from remote_logger.clients.stackdriver_logger_client import StackdriverLoggerClient
from remote_logger.remote_logger_handler import RemoteLoggerHandler

LOGGER = logging.getLogger(__name__)

# With service key
service_key_path = "/path/to/key.json"
stackdriver_client = StackdriverLoggerClient(service_key_path=service_key_path)

# Without service key
stackdriver_client = StackdriverLoggerClient()

stackdriver_handler = RemoteLoggerHandler(stackdriver_client)
stackdriver_handler.setLevel(logging.ERROR)
LOGGER.addHandler(stackdriver_handler)

Sending events to RemoteLogger

dummy_group_id = 99
primary_metadata = {
    "pkey1": "pvalue1",
    "pkey2": "pvalue2",
    "pkey3": "pvalue3",
}
secondary_metadata = {
    "skey1": "svalue1",
    "skey2": "svalue2",
    "skey3": "svalue3",
}
LOGGER.error("Test Message", extra={
    "group_id": dummy_group_id,
    "primary_metadata": primary_metadata,
    "secondary_metadata": secondary_metadata,
})

About

Remote Logger is a Python library that simplifies cloud logging services such as Sentry and Stackdriver, and allows you to easily integrate them with Python's native logging.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages