Skip to main content

Microsoft Teams logging handler for Python

Project description

Python logging handler for Microsoft Teams webhook integration with both simple and dictionary configurations.

Installation

pip install teams-logger

Examples

Simple configuration

import logging
from teams_logger import TeamsHandler

th = TeamsHandler(url='YOUR_WEB_HOOK_URL', level=logging.INFO)
logging.basicConfig(handlers=[th])
logging.warning('warn message')

Simple configuration and non blocking handler

import logging
from teams_logger import TeamsQueueHandler
th = TeamsQueueHandler(url='YOUR_WEB_HOOK_URL', level=logging.INFO)
logging.basicConfig(handlers=[th])
logging.info("info message")

Simple configuration and Card Formatter

import logging
from teams_logger import TeamsHandler, Office365CardFormatter

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

th = TeamsHandler(url='YOUR_WEB_HOOK_URL', level=logging.INFO)
th.setLevel(logging.DEBUG)
logger.addHandler(th)

cf = Office365CardFormatter(facts=["name", "levelname", "lineno"])
th.setFormatter(cf)
logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')

try:
    2/0
except ZeroDivisionError as e:
    logger.error('Oops !', exc_info=True)

Dictionary configuration and Card Formatter

import logging
import logging.config
from teams_logger import TeamsHandler, Office365CardFormatter

url = 'YOUR_WEB_HOOK_URL'
logging_dict = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'teamscard': {
            '()': Office365CardFormatter,
            'facts': ["name", "levelname", "lineno"],
        },
    },
    'handlers': {
        'msteams': {
            'level': logging.INFO,
            'class': 'teams_logger.TeamsHandler',
            'url': url,
            'formatter': 'teamscard',
        },
    },
    'loggers': {
        __name__: {
            'handlers': ['msteams'],
            'level': logging.DEBUG,
        }
    },
}
logging.config.dictConfig(logging_dict)
logger = logging.getLogger(__name__)
logger.info('Info message')

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

teams-logger-0.4.0.tar.gz (4.4 kB view hashes)

Uploaded Source

Built Distribution

teams_logger-0.4.0-py3-none-any.whl (4.4 kB view hashes)

Uploaded Python 3

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