Add logging
This commit is contained in:
8
src/constants.py
Normal file
8
src/constants.py
Normal file
@@ -0,0 +1,8 @@
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv(dotenv_path="../.env", override=True)
|
||||
|
||||
LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO").upper()
|
||||
LOG_PATH = os.getenv("LOG_PATH", "/tmp/logs")
|
||||
LOG_CLEAR = os.getenv("LOG_CLEAR", "False").capitalize()
|
||||
35
src/init.py
Normal file
35
src/init.py
Normal file
@@ -0,0 +1,35 @@
|
||||
import os
|
||||
from logger import init_logger
|
||||
from constants import LOG_PATH, LOG_CLEAR, LOG_LEVEL
|
||||
|
||||
if not os.path.exists(LOG_PATH):
|
||||
os.mkdir(LOG_PATH)
|
||||
else:
|
||||
pass
|
||||
|
||||
log_files = (
|
||||
f"{LOG_PATH}/app.log",
|
||||
f"{LOG_PATH}/app.warning.log",
|
||||
f"{LOG_PATH}/app.error.log",
|
||||
)
|
||||
|
||||
if LOG_LEVEL == "DEBUG":
|
||||
testing_mode = True
|
||||
else:
|
||||
testing_mode = False
|
||||
|
||||
logger = init_logger(__name__, testing_mode=testing_mode)
|
||||
|
||||
if LOG_CLEAR == "True":
|
||||
try:
|
||||
for log_file in log_files:
|
||||
if os.path.exists(log_file):
|
||||
with open(log_file, "r+") as t:
|
||||
t.truncate(0)
|
||||
else:
|
||||
pass
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
raise
|
||||
else:
|
||||
pass
|
||||
44
src/logger.py
Normal file
44
src/logger.py
Normal file
@@ -0,0 +1,44 @@
|
||||
import logging
|
||||
import colorlog
|
||||
from constants import LOG_PATH
|
||||
|
||||
|
||||
def init_logger(dunder_name, testing_mode) -> logging.Logger:
|
||||
log_format = (
|
||||
"%(asctime)s - "
|
||||
"%(name)s - "
|
||||
"%(funcName)s - "
|
||||
"%(levelname)s - "
|
||||
"%(message)s"
|
||||
)
|
||||
""" Initialize logging """
|
||||
|
||||
bold_seq = "\033[1m"
|
||||
colorlog_format = f"{bold_seq} " "%(log_color)s " f"{log_format}"
|
||||
colorlog.basicConfig(format=colorlog_format)
|
||||
logger = logging.getLogger(dunder_name)
|
||||
|
||||
if testing_mode:
|
||||
logger.setLevel(logging.DEBUG)
|
||||
else:
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
fh = logging.FileHandler(f"{LOG_PATH}/app.log")
|
||||
fh.setLevel(logging.DEBUG)
|
||||
formatter = logging.Formatter(log_format)
|
||||
fh.setFormatter(formatter)
|
||||
logger.addHandler(fh)
|
||||
|
||||
fh = logging.FileHandler(f"{LOG_PATH}/app.warning.log")
|
||||
fh.setLevel(logging.WARNING)
|
||||
formatter = logging.Formatter(log_format)
|
||||
fh.setFormatter(formatter)
|
||||
logger.addHandler(fh)
|
||||
|
||||
fh = logging.FileHandler(f"{LOG_PATH}/app.error.log")
|
||||
fh.setLevel(logging.ERROR)
|
||||
formatter = logging.Formatter(log_format)
|
||||
fh.setFormatter(formatter)
|
||||
logger.addHandler(fh)
|
||||
|
||||
return logger
|
||||
Reference in New Issue
Block a user