Ниже представлена слегка переделанная функция, взятая вот отсюда: http://pysi.org/articles/django_and_tornado/
views.py:
def userlogpath(user, message):
#создание директории для записи лога и файла лога
LOG_DIR = MEDIA_ROOT+'/log'
LOG_FILE = LOG_DIR+username+'.log'
#проверка существования директории (впервые вошел в систему)
if not os.path.isdir(LOG_DIR):
os.makedirs(LOG_DIR)
#задаем свойсива файла логирования
#вданнои случе его размкщение
file_handler = logging.handlers.RotatingFileHandler(
filename = LOG_FILE)#, mode='a+', # имя файла
#maxBytes = 1000000, # максимально байт в файле
#backupCount = 1) # максимум файлов
# задаем режим логирования ('INFO')
file_handler.setLevel(getattr(logging, 'INFO'))
#задаем формат логирования (число-месяц-год время)
file_handler.setFormatter(
logging.Formatter('%(asctime)s\t%(levelname)-8s %(message)s',
datefmt = '%d-%m-%Y %H:%M:%S'))
logging.getLogger('').setLevel(logging.INFO)
#устанавливаем режим добавления в файл
logging.getLogger('').addHandler(file_handler)
#записываем информацию
logging.info(message)
#закрываем файл
logging.getLogger('').removeHandler(file_handler)
file_handler.close()
Это был простой способ. Но можно повыпендриваться и записать основные директории в settings.py, например вот так:
LOG_DIRNAME = 'log'
LOG_DIR = os.path.join( '{user}', LOG_DIRNAME)
LOG_FILENAME = '{user}.log'
LOG_FILE_PATH = os.path.join(MEDIA_ROOT, LOG_DIR, LOG_FILENAME)
#в views.py вызвать вот так:
LOG_FILE = settings.LOG_FILE_PATH.format(user=user.username)
LOG_DIR = os.path.dirname(LOG_FILE)
Комментариев нет:
Отправить комментарий