Metadata-Version: 2.1
Name: logger-master
Version: 0.0.3
Summary: A package for pushing serialized error log which generated by loguru to remote storage like mongodb / redis / fluentd
Home-page: https://github.com/chienfeng0719/logger-master
Author: Jimmy Yeh
Author-email: chienfeng0719@hotmail.com
License: UNKNOWN
Description: # logger-master
        **A package for pushing serialized error log which generated by [loguru](https://github.com/Delgan/loguru "loguru") to remote storage.**
        
        ## Description:
        A package for pushing serialized error log which generated by [loguru](https://github.com/Delgan/loguru "loguru") to remote storage (including mongodb / redis / fluentd).
        
        ## How To Use:
        
        ### With MongoDB
        * parameters:
            - mongo_instance(object): mongodb instance
            - mongo_db(str): database for storing log data
            - mongo_collection(str): collection for storing log data
            - terminal_displayed(bool): display log information on terminal screen or not
            - rotation(str): [loguru](https://github.com/Delgan/loguru#modern-string-formatting-using-braces-style) rotation
            - serialize(bool): data serialized or not
            - log_format(str): [loguru](https://github.com/Delgan/loguru#modern-string-formatting-using-braces-style) format
            - log_path(str): file path for storing log data
            - custom_func(function): function for custom serialized data
        ```python
        import json
        from pymongo import MongoClient
        from logger_master.logger import MongoLogger
        
        # pushing log to mongodb instance
        
        mongo_uri = 'mongodb://root:root@localhost:27017/?authMechanism=SCRAM-SHA-1'
        mongo_instance = MongoClient(mongo_uri)
        
        # basic usage for pushing log with specific database and collection
        logger = MongoLogger(mongo_instance=mongo_instance,
                             mongo_db='my_log',
                             mongo_collection='my_log_collection')
        
        # pushing serialize log to ./my_log/log_file
        logger = MongoLogger(mongo_instance=mongo_instance,
                             mongo_db='my_log',
                             mongo_collection='my_log_collection',
                             serialize=True,
                             log_path='./my_log/log_file',
                             rotation='1 week')
        
        # disable display log on screen
        logger = MongoLogger(mongo_instance=mongo_instance,
                             mongo_db='my_log',
                             mongo_collection='my_log_collection',
                             log_path='./my_log/log_file',
                             terminal_displayed=False)
        
        # pushing serialized log with custom format
        def custom_function(serialized_data):
            if not isinstance(serialized_data, dict):
                serialized_data = json.loads(serialized_data)
            serialized_data.update({'new_key': 'new_value'})
            return serialized_data
        
        
        logger = MongoLogger(mongo_instance=mongo_instance,
                             mongo_db='my_log',
                             mongo_collection='my_log_collection', 
                             custom_func=custom_function)
        
        try:
            100 / 0
        except Exception as e:
            logger.error(str(e))
        ```
        
        ### With Redis
        * parameters:
            - redis_instance(object): redis instance
            - key_prefix(str): prefix for redis key
            - terminal_displayed(bool): display log information on terminal screen or not
            - rotation(str): [loguru](https://github.com/Delgan/loguru#modern-string-formatting-using-braces-style) rotation
            - serialize(bool): data serialized or not
            - log_format(str): [loguru](https://github.com/Delgan/loguru#modern-string-formatting-using-braces-style) format
            - log_path(str): file path for storing log data
            - custom_func(function): function for custom serialized data
        ```python
        import json
        import redis
        from logger_master.logger import RedisLogger
        
        # basic usage for pushing log to redis instance
        
        redis_instance = redis.StrictRedis(host='localhost',
                                           password='root',
                                           port='root')
        
        # pushing log to mongodb with 'my_error_log' key prefix
        logger = RedisLogger(redis_instance=redis_instance,
                             key_prefix='my_error_log')
        
        # pushing serialize log to ./my_log/log_file
        logger = RedisLogger(redis_instance=redis_instance,
                             key_prefix='my_error_log',
                             serialize=True,
                             log_path='./my_log/log_file',
                             rotation='1 week')
        
        # disable display log on screen
        logger = RedisLogger(redis_instance=redis_instance,
                             key_prefix='my_error_log',
                             log_path='./my_log/log_file',
                             terminal_displayed=False)
        
        # pushing serialized log with custom format
        def custom_function(serialized_data):
            if not isinstance(serialized_data, dict):
                serialized_data = json.loads(serialized_data)
            serialized_data.update({'new_key': 'new_value'})
            return serialized_data
        
        
        logger = RedisLogger(redis_instance=redis_instance,
                             key_prefix='my_error_log',
                             custom_func=custom_function)
        
        try:
            100 / 0
        except Exception as e:
            logger.error(str(e))
        ```
        
        ### With Fluentd
        * parameters:
            - hostname(str): fluentd hostname
            - port(int): fluentd port
            - key_prefix(str): prefix for fluentd key
            - terminal_displayed(bool): display log information on terminal screen or not
            - rotation(str): [loguru](https://github.com/Delgan/loguru#modern-string-formatting-using-braces-style) rotation
            - serialize(bool): data serialized or not
            - log_format(str): [loguru](https://github.com/Delgan/loguru#modern-string-formatting-using-braces-style) format
            - log_path(str): file path for storing log data
            - custom_func(function): function for custom serialized data
        ```python
        import json
        from logger_master import FluentdLogger
        
        # pushing log log to fluentd
        
        # basic usage for pushing log data to fluentd
        logger = FluentdLogger(hostname='localhost',
                               port=24224,
                               key_prefix='mongo')
        
        # pushing serialize log to ./my_log/log_file
        logger = FluentdLogger(hostname='localhost',
                               port=24224,
                               key_prefix='mongo',
                               serialize=True,
                               log_path='./my_log/log_file',
                               rotation='1 week')
        
        # disable display log on screen
        logger = FluentdLogger(hostname='localhost',
                               port=24224,
                               key_prefix='mongo',
                               log_path='./my_log/log_file',
                               terminal_displayed=False)
        
        
        # pushing serialized log with custom format
        def custom_function(serialized_data):
            if not isinstance(serialized_data, dict):
                serialized_data = json.loads(serialized_data)
            serialized_data.update({'new_key': 'new_value'})
            return serialized_data
        
        
        logger = FluentdLogger(hostname='localhost',
                               port=24224,
                               key_prefix='mongo',
                               custom_func=custom_function)
        
        try:
            1 / 0
        except Exception as e:
            logger.error(msg=str(e))
        ```
        **you can also push log to both fluentd and mongodb with [fluent-plugin-mongo](https://docs.fluentd.org/output/mongo).**
        
        ---
        <a href="https://www.buymeacoffee.com/jimmyyyeh" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-blue.png" alt="Buy Me A Coffee" height="40" width="175"></a>
        
        **Buy me a coffee, if you like it!**
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
