为什么输出的是不是log格式的文件
class GetLog:
@classmethod
def get_log(cls):
cls.log = None
if cls.log is None:
# 1.获取日志器
cls.log = logging.getLogger()
# 1.1获取日志器级别info
cls.log.setLevel(logging.INFO)
filepath = DIR_path + os.sep + "log" + os.sep + "p2p.log"
# 2.获取处理器
# sh = logging.StreamHandler()控制台处理器
tf = logging.handlers.TimedRotatingFileHandler(filepath,
when="midnight",
interval=1,
backupCount=7,
encoding="UTF-8"
) # 文件处理器
# 3.获取格式器
fmt = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s"
# 4.将格式器添加到处理器中
formatter = logging.Formatter(fmt)
tf.setFormatter(formatter)
# 5.将处理器添加到日志器中
cls.log.addHandler(tf)
# 返回日志器
return cls.log
该回答引用GPTᴼᴾᴱᴺᴬᴵ
如果你的输出结果不是你期望的格式,可能是因为在调用 get_log() 方法后没有正确地使用日志器实例记录日志信息。可以在代码中调用 get_log() 方法来获取日志器实例,然后使用日志器实例的方法(例如 info()、debug()、error() 等)来记录日志信息。例如:
log = GetLog.get_log()
log.info("This is an info log message.")
log.debug("This is a debug log message.")
这样可以将日志信息写入到文件中,并按照预定义的格式进行格式化输出。
不知道你这个问题是否已经解决, 如果还没有解决的话: