Spaces:
Running
Running
File size: 1,166 Bytes
3085164 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
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 |