Как я могу установить имя файла в зависимости от пользователя при регистрации в файле 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 но имя_пользователя становится слишком правильным в этом .