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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界