import logging
import loguru
import os
import sys
import time
from public.public_globle_fun import project_path
time = str(int(time.time()))
#在allure中显示log
class PrepagateHandler(logging.Handler):
def emit(self, record):
logging.getLogger(record.name).handle(record)
def get_log():
log_path = os.path.join(project_path, 'file/log/run.log')
res = loguru.logger.opt()
res.add(log_path,
rotation="500MB", # 当文件达到500M时重新生成文件
encoding="utf-8",
enqueue=True, # 是否为异步写入
# compression="zip",配置文件的压缩格式,可以配置常见的格式 zip、tar、gz、tar.gz 等
retention="10 days", # 配置日志的最长保留时间
format="{time:YYYY-MM-DD HH:mm:ss}|{level}|{file}:{line}|{message}")
res.add(PrepagateHandler())
return res
format:
{time}
:当前时间的默认格式,例如2023-08-17 15:00:00
{time:YYYY-MM-DD HH:mm:ss}
:自定义时间格式化,例如2023-08-17 15:00:00
{level}
:日志级别,例如INFO
、WARNING
、ERROR
等
{message}
:日志消息内容
{file}
:当前日志消息所在的文件名
{function}
:当前日志消息所在的函数名
{line}
:当前日志消息所在的行号
{name}
:记录器的名称
{thread.name}
:当前线程的名称
{thread.id}
:当前线程的I