Add logging utils
This commit is contained in:
parent
3113d5cb5d
commit
7facedb38a
60
cv_analysis/logging.py
Normal file
60
cv_analysis/logging.py
Normal file
@ -0,0 +1,60 @@
|
||||
import sys
|
||||
from functools import wraps
|
||||
from operator import attrgetter
|
||||
from typing import Callable, Any
|
||||
|
||||
import loguru
|
||||
from funcy import log_calls
|
||||
|
||||
dev_logger = loguru.logger
|
||||
|
||||
dev_logger.remove()
|
||||
dev_logger.add(
|
||||
sink=sys.stderr,
|
||||
format="<green>{time:YYYY-MM-DD at HH:mm:ss}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>: <level>{message}</level>",
|
||||
level="TRACE",
|
||||
)
|
||||
|
||||
prod_logger = loguru.logger
|
||||
|
||||
prod_logger.add(
|
||||
sink=sys.stderr,
|
||||
format="<white>{time:YYYY-MM-DD at HH:mm:ss}</white> | <level>{level: <8}</level> | <cyan>{name}</cyan>: <level>{message}</level>",
|
||||
level="INFO",
|
||||
enqueue=True,
|
||||
)
|
||||
|
||||
logger = loguru.logger
|
||||
|
||||
|
||||
def __log(logger, level: str) -> Callable:
|
||||
print_func = get_print_func(logger, level)
|
||||
|
||||
def inner(func: Callable) -> Callable:
|
||||
@log_calls(print_func=print_func)
|
||||
@wraps(func)
|
||||
def inner(*args, **kwargs) -> Any:
|
||||
return func(*args, **kwargs)
|
||||
|
||||
return inner
|
||||
|
||||
return inner
|
||||
|
||||
|
||||
def get_print_func(logger, level: str):
|
||||
return attrgetter(level.lower())(logger)
|
||||
|
||||
|
||||
def dev_log(level: str = "TRACE") -> Callable:
|
||||
return __log(dev_logger, level)
|
||||
|
||||
|
||||
def prod_log(level: str = "TRACE") -> Callable:
|
||||
return __log(prod_logger, level)
|
||||
|
||||
|
||||
def delay(fn, *args, **kwargs):
|
||||
def inner():
|
||||
return fn(*args, **kwargs)
|
||||
|
||||
return inner
|
||||
Loading…
x
Reference in New Issue
Block a user