python - 无论如何为每个用户和日期创建日志文件
问题描述
我有一个应用程序,我需要为每个用户创建一个文件夹,他们将在其中保存每日日志。我添加了创建的自定义中间件,它将调用我的 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,则第一个用户将拥有初始日志,那么第一个用户和第二个用户的所有日志都将归入第二个用户。
有什么方法可以确保日志进入正确的文件?
解决方案
推荐阅读
- git - 仅检测 git 中的换行更改
- javascript - 在下拉框中选择时不显示选项值
- sql - 如何从 3 个表中获取唯一记录
- python - 有没有办法使用python打开网站并粘贴?
- chapel - i == j == k 的意外结果?
- javascript - 如何从父项目中获取文件?
- laravel - 使用 laravel 和 livewire 让过滤器工作
- python - 无法使用 pip2.7 安装 simpleHTTPServer 等软件包
- amazon-web-services - Elasticsearch 6.3 (AWS) 快照恢复进度错误:“/_recovery is not allowed”
- sas - 如何输出proclogistic的优势比标准误差?