Skip to main content

A python logging handler that logs to Webex incoming webhooks

Project description

Webex Logging Handler

This is a simple Python logging handler that emits messages to Webex incoming Webhooks.

Installing

To install run:

python -m pip install git+https://github.com/xorrkaz/webex-log-handler.git

Usage

First, obtain an incoming webhook URL from https://apphub.webex.com/messaging/applications/incoming-webhooks-cisco-systems-38054.

Here is a trivial usage. But you'll likely want to use a logger.conf or the like.

import logging
from webex_handler import WebexHandler

logger = logging.getLogger(__name__)
# The notice level is more severe than INFO but not as severe as WARNING.
logger.setLevel(WebexHandler.NOTICE)
logging.addLevelName(WebexHandler.NOTICE, "NOTICE")

wx = WebexHandler("https://webexapis.com/v1/webhooks/incoming/...")
wx.setLevel(WebexHandler.NOTICE)

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
wx.setFormatter(formatter)

logger.addHandler(wx)

logger.log(WebexHandler.NOTICE, "Logging from Python!")

If you are using asyncio, there is an async version of the handler as well. It requires the aiolog and aiohttp packages, though. To use it:

pip install aiolog aiohttp
import asyncio
import aiolog
import logging
from webex_handler import AsyncWebexHandler

logger = logging.getLogger(__name__)
# The notice level is more severe than INFO but not as severe as WARNING.
logger.setLevel(AsyncWebexHandler.NOTICE)
logging.addLevelName(AsyncWebexHandler.NOTICE, "NOTICE")

wx = AsyncWebexHandler("https://webexapis.com/v1/webhooks/incoming/...")
wx.setLevel(AsyncWebexHandler.NOTICE)

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
wx.setFormatter(formatter)

logger.addHandler(wx)

async def do_work():
    logger.log(AsyncWebexHandler.NOTICE, "Logging from Python!")

aiolog.start()
loop = asyncio.get_event_loop()
loop.run_until_complete(do_work())
loop.run_until_complete(aiolog.stop())

Et voilà!

screenshot

Other Info

The WebexHandler uses markdown-formatted messages by default, but you can pass use_markdown=False to the WebexHandler constructor to use plain text.

Also, be cognizant than a high level (like INFO or DEBUG) can make things very chatty in Webex. Consider a lower level to minimize noise.

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

webex_handler-2.0.0.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

webex_handler-2.0.0-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file webex_handler-2.0.0.tar.gz.

File metadata

  • Download URL: webex_handler-2.0.0.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for webex_handler-2.0.0.tar.gz
Algorithm Hash digest
SHA256 c422d4fcdc18c73cd2ac8202751e661914c8fc083c33be8729cca26a45eaa9f7
MD5 371f5042465a9bf9666f40c70b367b50
BLAKE2b-256 0bcaa868d07dbbaead4db8bda28a6b9fd653f1638aab05dab044d495e05608c0

See more details on using hashes here.

File details

Details for the file webex_handler-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: webex_handler-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for webex_handler-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fa22317f0f549b70be23b912ba13446293404214e4ade68c01544a3f332310c9
MD5 7e971e2f02362ce2ee5c37cf1713c54b
BLAKE2b-256 0cc0d923fe0cae69f24b8f0aa4b6826c97ea641d088419a2868a71a4e80a4892

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