AIStudioBuildWS / utils /logger.py
hkfires's picture
Upload 10 files
3085164 verified
raw
history blame
1.17 kB
import logging
def setup_logging(log_file, prefix=None, level=logging.INFO):
"""
配置日志记录器,使其输出到文件和控制台。
支持一个可选的前缀,用于标识日志来源。
每次调用都会重新配置处理器,以适应多进程环境。
:param log_file: 日志文件的路径。
:param prefix: (可选) 要添加到每条日志消息开头的字符串前缀。
:param level: 日志级别。
"""
logger = logging.getLogger('my_app_logger')
logger.setLevel(level)
if logger.hasHandlers():
logger.handlers.clear()
base_format = '%(asctime)s - %(process)d - %(levelname)s - %(message)s'
if prefix:
log_format = f'%(asctime)s - %(process)d - %(levelname)s - {prefix} - %(message)s'
else:
log_format = base_format
fh = logging.FileHandler(log_file)
fh.setLevel(level)
ch = logging.StreamHandler()
ch.setLevel(level)
formatter = logging.Formatter(log_format)
fh.setFormatter(formatter)
ch.setFormatter(formatter)
logger.addHandler(fh)
logger.addHandler(ch)
logger.propagate = False
return logger