【发布时间】:2023-03-24 01:12:01
【问题描述】:
我有一个非常好的问题,我希望专家为我发表评论。 (也许是格雷厄姆·邓普顿)
所以我有一个 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。贾格诺 1.7。如果您认为它也可以帮助其他人,请评价这个问题。干杯。
标签: python django apache mod-wsgi