首页 > 解决方案 > 无论如何为每个用户和日期创建日志文件

问题描述

我有一个应用程序,我需要为每个用户创建一个文件夹,他们将在其中保存每日日志。我添加了创建的自定义中间件,它将调用我的 custom_logger 文件来为每个用户创建日志文件。下面是我的中间件auth_middleware.py

from .custom_logger import LogClass
log_obj=LogClass()
def simple_middleware(get_response):

    def middleware(request):
        user_token=request.headers['userid']     
        user_name=request.headers['username']
        page_name=request.headers['pagename']
        log_obj.log_setting(str(user_name),str(page_name))
        return response
    return middleware

我从中间件调用我的custom_logger.py 。

class LogClass:
    def log_setting(self,user_name,page_name):
        current_date = datetime.date.today() #set variable which store current date
 
        log_path = './logs/' + user_name   #log path of user folder
            
        if os.path.exists(log_path):   #check user folder is already exist or not  
            pass
        else:
            os.mkdir(log_path)  #use to create user folder with username
        filename=str(current_date) +'.log'  #set file name with current date 
        
        logging.basicConfig(level=logging.DEBUG,filename=log_path+'/'+ filename,force=True, format='%(asctime)s : %(levelname)s : '+page_name+' : %(pathname)s : %(lineno)s: %(funcName)s : %(message)s')

在此之后,我在每个文件中导入日志记录,如果一个用户同时为多个用户工作,它就可以正常工作,它不起作用。

如果两个用户并行调用一个 API,则第一个用户将拥有初始日志,那么第一个用户和第二个用户的所有日志都将归入第二个用户。

有什么方法可以确保日志进入正确的文件?

标签: pythondjangologgingmiddleware

解决方案


推荐阅读