@@ -124,11 +124,14 @@ def format(self, record):
124124 def _format_basic (self , record ):
125125 """基本格式化,不包含颜色"""
126126 datetime_str = datetime .fromtimestamp (record .created ).strftime ("%y-%m-%d [%H:%M:%S,%f" )[:- 3 ] + "]"
127- filename = os .path .basename (record .filename ).rsplit ("." , 1 )[0 ] # 提取文件名(不含路径和扩展名)
127+ filename = record .filename .replace (".py" , "" ).split ("\\ " )[- 1 ] # 提取文件名(不含路径和扩展名)
128+ if "/" in filename :
129+ filename = filename .split ("/" )[- 1 ]
128130 module_path = f"{ record .name } .{ filename } "
129131 func_line = f"{ record .funcName } :{ record .lineno } "
132+ right_info = f" [{ func_line } ] [{ module_path } ]"
130133
131- formatted_message = f"{ datetime_str } [{ record .levelname } ] [ { module_path } ] [ { func_line } ]: { record .getMessage ()} "
134+ formatted_message = f"{ datetime_str } [{ record .levelname } ] { record .getMessage ()} { right_info } "
132135
133136 if record .exc_info :
134137 exc_text = self .formatException (record .exc_info )
@@ -150,7 +153,7 @@ def formatException(self, exc_info):
150153
151154
152155# 配置日志处理器
153- def configure_logger (loglevel = None ):
156+ def configure_logger (loglevel = None , working_dir = None ):
154157 """配置日志记录器
155158
156159 Args:
@@ -191,9 +194,30 @@ def configure_logger(loglevel=None):
191194
192195 # 添加处理器到根日志记录器
193196 root_logger .addHandler (console_handler )
197+
198+ # 如果指定了工作目录,添加文件处理器
199+ if working_dir is not None :
200+ logs_dir = os .path .join (working_dir , "logs" )
201+ os .makedirs (logs_dir , exist_ok = True )
202+
203+ # 生成日志文件名:日期 时间.log
204+ log_filename = datetime .now ().strftime ("%Y-%m-%d %H-%M-%S" ) + ".log"
205+ log_filepath = os .path .join (logs_dir , log_filename )
206+
207+ # 创建文件处理器
208+ file_handler = logging .FileHandler (log_filepath , encoding = "utf-8" )
209+ file_handler .setLevel (root_logger .level )
210+
211+ # 使用不带颜色的格式化器
212+ file_formatter = ColoredFormatter (use_colors = False )
213+ file_handler .setFormatter (file_formatter )
214+
215+ root_logger .addHandler (file_handler )
216+
194217 logging .getLogger ("asyncio" ).setLevel (logging .INFO )
195218 logging .getLogger ("urllib3" ).setLevel (logging .INFO )
196219
220+
197221# 配置日志系统
198222configure_logger ()
199223
0 commit comments