Skip to main content

A logging package for tracing function calls with error handling and email notification

Project description

TrackLogging

TrackLogging is a logging package for tracing function calls with error handling and email notification.

Installation

You can install TrackingLog using pip:

pip install trackinglog

Github URL

https://github.com/shiyi-yinghao/trackinglog

PyPi URL

https://pypi.org/project/trackinglog/

version History

0.1.0 Package Draft created

0.1.1 Decorator get_log and directly object creator get_logger created. Added setup check decorator. Added p-functions(print and log).

0.1.2 Added error handling. Added verbose option for decorator. Added called function name.

0.1.3 Added profiler for both function level and line level. Updated error handling logic: reset verbose to False, but it will now raise error instead. Added class name to log. Added dependency pakages. Added resource performance tracking.

0.1.4 Formatted the logging message with indentation. Add print to log feature. Refactor the get_log function.

0.1.5 Added cache log cleaner.

0.1.6 Updated Log config to Parameter config. Added inline log usage.

Feature in developing

Add public and private log

Add Added email notification.

Add Kafka message notification

Uaage for function and quick settings:

import logging
import trackinglog
import inspect

# Setup the LogManager with root logging path
trackinglog.logger.setup(root_task_path='./logs')

@trackinglog.logger.get_log('my_logger', verbose=1, enable_profiling="line")
def my_function(log=None):  # Notice how the log parameter is expected
    log.info("This function does something important.")
    print("Function is executing...")
    # assert False, "This function is broken!"
    
my_function()  # Running the function will log start and end, using the specific logger

Usage for class and comprehensive settings:

import logging
import trackinglog
import inspect

trackinglog.logger.setup(root_task_path='./logs', log_config={'root_log_path':"./logs", '_cache_log_path':"./logs/cache", 'cache_log_num_limit':10, '_cache_log_day_limit':7},
                                                    email_credential={'username':"PLACEHOLDER", 'password':"PLACEHOLDER",  'root_emails_folder':"./logs/emails"},
                                                    lock_config={"lock_folder_path":"./logs/locks"})

@trackinglog.logger.get_log('my_logger_cls', verbose=1, enable_profiling="line", print2log=True)
class testclass:
    def __init__(self, a: int):
        self.a=a
    def p(self):
        self.log.info("class log")
        # assert False , "This function is broken!"

    def count(self, n: int):
        for i in range(n):
            print(i)
    

t=testclass(2.2)
t.p()
t.count(3)

Usage inside a function:

trackinglog.logger.setup(root_task_path='./logs')

def my_function():
    log=trackinglog.logger.get_logger('my_logger_func')
    log.info("This function does something important.")
    print("Function is executed")

my_function() 

Configuration and Parameters:

trackinglog.logger.setup(root_log_path='./logs') @trackinglog.logger.get_log('my_logger_cls', verbose=1, enable_profiling="function", print2log=True)

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

trackinglog-0.1.6.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

trackinglog-0.1.6-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file trackinglog-0.1.6.tar.gz.

File metadata

  • Download URL: trackinglog-0.1.6.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for trackinglog-0.1.6.tar.gz
Algorithm Hash digest
SHA256 e835c0df2dcb46a3d7122bb3a05c9a220e34b0591eb1241faa76b4ca26d1623b
MD5 b705de12e13f2c2c1df4a3813e6dc23d
BLAKE2b-256 f17a2e8bdbb2279f44db933062fbf2e9c3434eeeb002a8788fedda2da2b34c1a

See more details on using hashes here.

File details

Details for the file trackinglog-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: trackinglog-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for trackinglog-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 993a0cd983aa5f651c301b41d14e48c37fac8d84b74fec5af21461fdd3e266d0
MD5 ce815959c304df6b3913dbbf8740956f
BLAKE2b-256 830dadc682d66c63662415420cfb54a96c6406e261912956627919185b1bee24

See more details on using hashes here.

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