Files
gommi/lib/framework/logger.py
2022-04-21 19:23:01 +09:00

77 lines
2.1 KiB
Python

import os
import logging
import logging.handlers
from datetime import datetime
from framework import path_data
from pytz import timezone, utc
from support.logger import CustomFormatter
level_unset_logger_list = []
logger_list = []
def get_logger(name):
logger = logging.getLogger(name)
# print(logger.handlers)
if not logger.handlers:
global level_unset_logger_list
global logger_list
level = logging.DEBUG
from framework import flag_system_loading
try:
if flag_system_loading:
try:
pass
except Exception:
level = logging.DEBUG
if level_unset_logger_list is not None:
for item in level_unset_logger_list:
item.setLevel(level)
level_unset_logger_list = None
else:
level_unset_logger_list.append(logger)
except Exception:
pass
logger.setLevel(level)
formatter = logging.Formatter(
"[%(asctime)s|%(levelname)s|%(filename)s:%(lineno)s] %(message)s"
)
def customTime(*args):
utc_dt = utc.localize(datetime.utcnow())
my_tz = timezone("Asia/Seoul")
converted = utc_dt.astimezone(my_tz)
return converted.timetuple()
formatter.converter = customTime
file_max_bytes = 1 * 1024 * 1024
fileHandler = logging.handlers.RotatingFileHandler(
filename=os.path.join(path_data, "log", "%s.log" % name),
maxBytes=file_max_bytes,
backupCount=5,
encoding="utf8",
delay=True,
)
streamHandler = logging.StreamHandler()
# handler에 fommater 세팅
fileHandler.setFormatter(formatter)
streamHandler.setFormatter(CustomFormatter())
# Handler를 logging에 추가
logger.addHandler(fileHandler)
logger.addHandler(streamHandler)
return logger
def set_level(level):
global logger_list
try:
for log in logger_list:
log.setLevel(level)
except Exception:
pass