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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
410a0a04e7216ef7af41c02d1edd0793477b8996263deaccb9ec83def0f9b8b9
|
|
| MD5 |
ba26a8eae8dc10d6495ae89b5ec60491
|
|
| BLAKE2b-256 |
ffe5e838c4df4fed761ea1cfd625e4b19280ae29c4ed51e050451c7b097a68dc
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc6ecd2ebaa53e1e97cbe8a906199a837c4a08ad279f2f833f03ec851fcca5ba
|
|
| MD5 |
3c92dd86c796ccb2e333bfc263fb5ea0
|
|
| BLAKE2b-256 |
14afb39614471c18fe63568e3cbebc2a9cd8b96d9aa51f5480ea20d441545d96
|