Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zach-taylor/splunk_handler
Python logging handler for sending logs to Splunk Enterprise
https://github.com/zach-taylor/splunk_handler
aws-lambda logging python splunk
Last synced: 4 days ago
JSON representation
Python logging handler for sending logs to Splunk Enterprise
- Host: GitHub
- URL: https://github.com/zach-taylor/splunk_handler
- Owner: zach-taylor
- License: mit
- Created: 2014-11-08T08:17:46.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2024-05-13T11:39:14.000Z (9 months ago)
- Last Synced: 2025-01-22T03:06:47.540Z (11 days ago)
- Topics: aws-lambda, logging, python, splunk
- Language: Python
- Size: 129 KB
- Stars: 55
- Watchers: 6
- Forks: 40
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Splunk Handler
[![Build](https://img.shields.io/travis/zach-taylor/splunk_handler.svg?style=flat-square)](https://travis-ci.org/zach-taylor/splunk_handler)
[![Code Climate](https://img.shields.io/codeclimate/maintainability/zach-taylor/splunk_handler.svg?style=flat-square)](https://codeclimate.com/github/zach-taylor/splunk_handler/maintainability)
[![PyPI](https://img.shields.io/pypi/v/splunk_handler.svg?style=flat-square)](https://pypi.python.org/pypi/splunk_handler)**Splunk Handler is a Python Logger for sending logged events to an installation of Splunk Enterprise.**
*This logger requires the destination Splunk Enterprise server to have enabled and configured the [Splunk HTTP Event Collector](http://dev.splunk.com/view/event-collector/SP-CAAAE6M).*
## A Note on Using with AWS Lambda
[AWS Lambda](https://aws.amazon.com/lambda/) has a custom implementation of Python Threading, and does not signal when the main thread exits. Because of this, it is possible to have Lambda halt execution while logs are still being processed. To ensure that execution does not terminate prematurely, Lambda users will be required to invoke splunk_handler.force_flush directly as the very last call in the Lambda handler, which will block the main thread from exiting until all logs have processed.
~~~python
from splunk_handler import force_flushdef lambda_handler(event, context):
do_work()
force_flush() # Flush logs in a blocking manner
~~~## Installation
Pip:
pip install splunk_handler
Manual:
python setup.py install
## Usage
from splunk_handler import SplunkHandler
Then use it like any other regular Python [logging handler](https://docs.python.org/2/howto/logging.html#handlers).
Example:
~~~python
import logging
from splunk_handler import SplunkHandler
splunk = SplunkHandler(
host='splunk.example.com',
port='8088',
token='851A5E58-4EF1-7291-F947-F614A76ACB21',
index='main'
#allow_overrides=True # whether to look for _