我有一个很好的问题,我想请专家为我评论一下。 (也许格雷厄姆Dumpleton)apache2用来写django日志的权限/用户
因此,我有一个Django Web应用程序(在Ubuntu 16.04上开发),它在/var/log/apache2/APPNAME.log上存在一些故障,如下所示。
因为/ var/log/apache2中的所有文件都拥有root:adm所有者,我以同样的方式授予了我的日志文件的所有权,并且确保www-data是adm组的成员。然后,我将rwx授予了所有者组的adm组,并且我测试了一切工作正常。
经过24小时后,文件和父文件夹的权限发生了变化,我可以看到写入权限已从日志文件和父目录中被撤销,从而导致权限被拒绝,因为无法写入日志文件。
这里是我的问题,如果你能好心帮:
1)其中,是把Django的日志文件正确的地方?
2)用户权限写入文件的过程是什么?
3)哪个进程重置/ var/log/apache中的权限,为什么?
谢谢各位大大提前,
我希望这个问题帮助别人了。
干杯, 迈克
views.py
from django.shortcuts import render
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from django import forms
from django.core.mail import send_mail, EmailMessage
from StudioHanel.forms import ContactForm
import traceback
import time
# import the logging library
import logging
import sys
# Get an instance of a logger
#logger = logging.getLogger('APPNAME')
def contact(request):
logger.debug('Contact Start!')
if request.method == 'POST':
etc...
settings.py
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
},
'applogfile': {
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
'filename': os.path.join('/var/log/apache2', 'APPNAME.log'),
'maxBytes': 1024*1024*15, 15MB
'backupCount': 10,
},
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
'APPNAME': {
'handlers': ['applogfile',],
'level': 'DEBUG',
},
}
}
你的操作系统是什么? –
Ubuntu 16.04是操作系统。 Web服务器是apache 2.4.18。 Djagno 1.7。如果你认为它也可以帮助其他人,请评价这个问题。干杯。 –