Как я могу установить имя файла в зависимости от пользователя при регистрации в файле set.py

Django sessions: Как включить идентификатор сессии в каждую запись журнала?

setting.py

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'custom_logging_filter': {
            '()': 'common.utils.logger_handler.custom_logger.CustomLoggingFilter',
        },
    },
    'formatters': {
        'file': {
            'format': ('%(asctime)s  '
                    '%(levelname)-8s %(c_user)s '
                    '%(pathname)s : %(lineno)s: %(funcName)s : %(message)s'),
        },
    },
    
    'handlers': {
        
        'base_file': {
            'level': 'DEBUG',
            'filters': ['custom_logging_filter'],
            'class': 'logging.FileHandler',     
            
            'formatter': 'file',
            'filename': '%(c_user)s.log',
        },
    },
    'loggers': {
        '': {
            'handlers': ['base_file', ],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

Я обратился к этой статье, и она сработала для меня. Я хочу установить имя файла/путь к файлу динамически для каждого пользователя, например. user1.log, user2,log вот так. Но я перепробовал все, что знаю, может ли кто-нибудь помочь мне.

файл custom_loggin

import logging
import os
import datetime
from Mlaas.thread_local import get_local_thread_value

class CustomLoggingFilter(logging.Filter):
    """
    If logging handler is configured with this filter,
    a log record is updated with User information.
    These attributes can be accessed by any logging formatter,
    as for example: %(c_session_id).

    The filter() method must return True, to ensure the record is logged.
    """
    def filter(self, record):
        record.c_user = get_local_thread_value('c_user')
        
        return True
    
    
class SetPath(logging.FileHandler):  
    
    def FileHandler(self, record):
        logging.error('check-1-2-3-4-')
        c_user = get_local_thread_value('c_user')            
        return True 
    
    
class LogClass():
        def custom():
            return 0

Я хочу создать папку и файл для каждого нового пользователя, например папка user1 17-9-21.log папка user2 17-9-21.log папка user3 17-9-21.log

log_path = './logs/' + self.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')

это мой старый код он работает файл для создания папки user wise но имя_пользователя становится слишком правильным в этом .

Вернуться на верх