Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Python logging handler that sends messages to HTTPS endpoints.

Project description

Python Logging Handler
-----------------------------

A simple Python logging handler that can be used to send to a https endpoint. Borrowed the extra fields concept from the graypy logging library.

## History
This repository if originally forked from (https://github.com/varshneyjayant/loggly-python-handler)

## Installation
Download the repository using pip

sudo pip install loggly-python-handler

## Use in python
### Configuration

Create a Configuration file python.conf and add RocketChatHandler to Configuration File.

[handlers]
keys=RocketChatHandler

[handler_RocketChatHandler]
class=oxomo.handlers.RocketChatHandler
formatter=jsonFormat
args=('ROCKETCHAT_WEBHOOK_URL','POST')

[formatters]
keys=jsonFormat

[loggers]
keys=root

[logger_root]
handlers=RocketChatHandler
level=ERROR

[formatter_jsonFormat]
format={ "loggerName":"%(name)s", "asciTime":"%(asctime)s", "fileName":"%(filename)s", "logRecordCreationTime":"%(created)f", "functionName":"%(funcName)s", "levelNo":"%(levelno)s", "lineNo":"%(lineno)d", "time":"%(msecs)d", "levelName":"%(levelname)s", "message":"%(message)s"}
datefmt=

### Use Configuration in python file

import logging
import logging.config
import oxomo.handlers

logging.config.fileConfig('python.conf')
logger = logging.getLogger('myLogger')

logger.error('Test Error Log')

## Optionally log uncaught exceptions as errors

def sysexcept_handler(type, value, tb):
logger.error("Uncaught exception: {0}".format(str(value)))
sys.__excepthook__(type, value, tb)
sys.excepthook = sysexcept_handler

## Use in Django

### settings.py

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
'json': {
'format': '{ "loggerName":"%(name)s", "asciTime":"%(asctime)s", "fileName":"%(filename)s", "logRecordCreationTime":"%(created)f", "functionName":"%(funcName)s", "levelNo":"%(levelno)s", "lineNo":"%(lineno)d", "time":"%(msecs)d", "levelName":"%(levelname)s", "message":"%(message)s"}',
},
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'level': 'DEBUG',
'formatter': 'verbose',
},
'oxomo': {
'class': 'oxomo.handlers.RocketChatHandler',
'level': 'INFO',
'formatter': 'json',
'url': 'ROCKETCHAT_WEBHOOK_URL',
},
},
'loggers': {
'django': {
'handlers': ['console', ],
'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
},
'your_app_name': {
'handlers': ['console', 'oxomo'],
'level': 'INFO',
},
},
}

### views.py

import logging

logger = logging.getLogger(__name__)

def logging_example(request):
"""logging example
"""
logger.debug('this is DEBUG message.')
logger.info('this is INFO message.')
logger.warning('this is WARNING message.')
logger.error('this is ERROR message.')
logger.critical('this is CRITICAL message.')

return Response({}, status=status.HTTP_200_OK)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for oxomo, version 0.1.2
Filename, size File type Python version Upload date Hashes
Filename, size oxomo-0.1.2.tar.gz (3.8 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page