Skip to main content

quick method log/exception catching

Project description

qqlog install

pip install qqlog

qqlog example 1

from qqlog import ex,init,enterleave,trace
init()
#init(path='./log/qqlog.log',level=logging.DEBUG)

@ex()
def test1(a,b):
    return a/b

@enterleave()
def test2(a,b):
    return a/b    

@trace()
def test3(a,b):
    return a/b

@enterleave()
def test4(a,b,prefix='answer is'):
    val = a/b
    print('%s %s'%(prefix,str(val)))
    return val

class testclass(object):
    @enterleave()
    def __init__(self):
        print('init')
    @enterleave()
    def sum(self,a,b):
        return a+b

import pandas as pd
df = pd.DataFrame(data={'1':[1,2,3],'b':['test1','test2','test3']},index=range(3))

@enterleave()
def df_test(a,b,df):
    val = a+b+df['1'].sum()    
    return val

import numpy as np
d = np.array([[1,2,3],[4,5,6]])

@enterleave()
def np_test(a,b,d):
    val = a+b+d.sum()    
    return val

import logging
logging.getLogger('newlogger')

@enterleave(loggername='newlogger',level=logging.ERROR)
def new_logger_test(a,b):
    return a+b

try:
    test1(1,0)
    test2(1,1)
    test3(1,0)
    test4(1,2,prefix='result:')
    df_test(1,2,df)
    np_test(1,2,d)
    testclass().sum(10,20)
    new_logger_test(5,15)
    
    
except Exception as ex:
    print(ex)

Console/qqlog.log

2021-09-29 21:47:47 [ERROR] [MainThread] [RAISE]test1: division by zero
2021-09-29 21:47:47 [DEBUG] [MainThread] [ENTER]test2(0:int=1, 1:int=1)
2021-09-29 21:47:47 [DEBUG] [MainThread] [RETURN]test2(1.0)
2021-09-29 21:47:47 [ERROR] [MainThread] [RAISE]test3
TRACE START
Traceback (most recent call last):
File "E:\jupyter\projects\whl\qqlog\qqlog_init_.py", line 174, in func_warp
return_val = func(*args, **kwargs)
File "E:\jupyter\projects\whl\qqlog\example.py", line 15, in test3
return a/b
ZeroDivisionError: division by zero

TRACE END

2021-09-29 21:47:47 [DEBUG] [MainThread] [ENTER]test4(0:int=1, 1:int=2, prefix:str='result:')
result: 0.5
2021-09-29 21:47:47 [DEBUG] [MainThread] [RETURN]test4(0.5)
2021-09-29 21:47:47 [DEBUG] [MainThread] [ENTER]df_test(0:int=1, 1:int=2, 2:DataFrame=[3bb56549-ebe7-4a85-900f-50d8788d29d3.csv]) 2021-09-29 21:47:47 [DEBUG] [MainThread] [RETURN]df_test(9)
2021-09-29 21:47:47 [DEBUG] [MainThread] [ENTER]np_test(0:int=1, 1:int=2, 2:ndarray=[367eb5ed-73f8-45e8-8fcb-4d8781afc46a.ary])
2021-09-29 21:47:47 [DEBUG] [MainThread] [RETURN]np_test(24)
2021-09-29 21:47:47 [DEBUG] [MainThread] [ENTER]init()
init
2021-09-29 21:47:47 [DEBUG] [MainThread] [RETURN]init(None)
2021-09-29 21:47:47 [DEBUG] [MainThread] [ENTER]sum(0:int=10, 1:int=20)
2021-09-29 21:47:47 [DEBUG] [MainThread] [RETURN]sum(30)
[ENTER]new_logger_test(0:int=5, 1:int=15)
[RETURN]new_logger_test(20)


# qqlog example 2
```python
from qqlog import ex,init,createCsvFileLogger,createConsoleFileLogger
import logging
init()

createCsvFileLogger('csv',level=logging.DEBUG,headers=['asctime','funcName','levelname','msg'],formatters=['asctime','funcName','levelname','msg'],path='debug.csv')
createConsoleFileLogger('consolefile',level=logging.DEBUG,path='./consolefile.log')

@ex(loggername='csv',rethrow=False)
def test_csv(a,b):
    return a/b

@ex(loggername='consolefile',rethrow=False)
def test_consolefile(a,b):
    return a/b

try:
    test_csv(1,0)
    test_consolefile(1,0)
except Exception as ex:
    print(ex)
asctime,funcName,levelname,msg
"2021-10-23 21:32:26","func_warp","ERROR","[RAISE]test_csv: division by zero"
2021-10-23 21:32:26,407 [RAISE]test_consolefile: division by zero

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

qqlog-0.0.5.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qqlog-0.0.5-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file qqlog-0.0.5.tar.gz.

File metadata

  • Download URL: qqlog-0.0.5.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for qqlog-0.0.5.tar.gz
Algorithm Hash digest
SHA256 410a0a04e7216ef7af41c02d1edd0793477b8996263deaccb9ec83def0f9b8b9
MD5 ba26a8eae8dc10d6495ae89b5ec60491
BLAKE2b-256 ffe5e838c4df4fed761ea1cfd625e4b19280ae29c4ed51e050451c7b097a68dc

See more details on using hashes here.

File details

Details for the file qqlog-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: qqlog-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for qqlog-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 cc6ecd2ebaa53e1e97cbe8a906199a837c4a08ad279f2f833f03ec851fcca5ba
MD5 3c92dd86c796ccb2e333bfc263fb5ea0
BLAKE2b-256 14afb39614471c18fe63568e3cbebc2a9cd8b96d9aa51f5480ea20d441545d96

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page