fix bug for new instance AppLogger will open a new logfile

This commit is contained in:
yumoqing 2023-12-18 22:08:30 +08:00
parent aeeaaa6e36
commit f80f461a23

View File

@ -11,20 +11,23 @@ levels={
} }
defaultfmt = '%(asctime)s[%(name)s][%(levelname)s][%(filename)s:%(lineno)s]%(message)s' defaultfmt = '%(asctime)s[%(name)s][%(levelname)s][%(filename)s:%(lineno)s]%(message)s'
logfile = -1 logfile = -1
logger = None
g_levelname='info' g_levelname='info'
level = levels.get('info') level = levels.get('info')
def create_logger(name, formater=defaultfmt, levelname=None, file=None): def create_logger(name, formater=defaultfmt, levelname=None, file=None):
global logfile, level, g_levelname global logger, logfile, level, g_levelname
if logfile == -1: if logfile == -1:
logfile = file logfile = file
ret = logging.getLogger(name) if logger:
return logger
logger = logging.getLogger(name)
if levelname: if levelname:
g_levelname = levelname g_levelname = levelname
else: else:
levelname = g_levelname levelname = g_levelname
level = levels.get(levelname, levels.get('info')) level = levels.get(levelname, levels.get('info'))
ret.setLevel(level) logger.setLevel(level)
format = logging.Formatter(formater) format = logging.Formatter(formater)
file_handler = None file_handler = None
if logfile is not None: if logfile is not None:
@ -33,8 +36,8 @@ def create_logger(name, formater=defaultfmt, levelname=None, file=None):
file_handler = logging.StreamHandler() file_handler = logging.StreamHandler()
file_handler.setFormatter(format) file_handler.setFormatter(format)
ret.addHandler(file_handler) logger.addHandler(file_handler)
return ret return logger
class AppLogger: class AppLogger:
def __init__(self): def __init__(self):