77 lines
2.1 KiB
Python
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
|