Metadata-Version: 2.1
Name: aws-logging-handlers
Version: 2.0.1
Summary: Logging aws_logging_handlers to AWS services that support S3 and Kinesis stream logging with multiple threads
Home-page: https://github.com/omrikiei/aws_logging_handlers/
Author: Omri Eival
Author-email: omrieival@gmail.com
License: UNKNOWN
Download-URL: https://github.com/omrikiei/aws_logging_handlers/archive/2.0.1.tar.gz
Keywords: logging,s3,aws,handler,amazon,stream,kinesis,firehose
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Requires-Dist: boto3

AWS Logging Handlers
====================

A python multithreaded logging handler package that streams records to
AWS services objects with support for the following AWS services: \* S3
\* Kinesis

Supports gzip compression(in S3)

Getting Started
---------------

Prerequisites
~~~~~~~~~~~~~

Asynchronous multipart uploading relies on the ability to use multiple
threads #### Packages:

::

   boto3

Installing
~~~~~~~~~~

Installation using pip

::

   pip install aws-logging-handlers

Examples
~~~~~~~~

Stream log records to S3 and Kinesis

::

    import logging
    from aws_logging_handlers import S3Handler, KinesisHandler

    bucket="test_bucket" # The bucket should already exist

    # The log will be rotated to a new object either when an object reaches 5 MB or when 120 seconds pass from the last rotation/initial logging
    s3_handler = S3Handler("test_log", bucket, workers=3)
    kinesis_handler = KinesisHandler('log_test', 'us-east-1', workers=1)
    formatter = logging.Formatter('[%(asctime)s] {%(filename)s:%(lineno)d} %(levelname)s - %(message)s')
    s3_handler.setFormatter(formatter)
    kinesis_handler.setFormatter(formatter)
    logger = logging.getLogger('root')
    logger.setLevel(logging.INFO)
    logger.addHandler(s3_handler)
    logger.addHandler(kinesis_handler)

    for i in range(0, 100000):
        logger.info("test info message")
        logger.warning("test warning message")
        logger.error("test error message")

To be developed
---------------

-  Support for asyncio
-  Logging and upload metrics

License
-------

This project is licensed under the MIT License - see the `LICENSE.md`_
file for details

.. _LICENSE.md: LICENSE


