2016-08-31 69 views
0

我在Django中使用默认记录器models.py像这样。Django记录错误

import logging 
logging.basicConfig(filename='models.log',level=logging.INFO) 
logging.info('Staring execution. Models for db tables') 

它在Django服务器上工作,日志正在写入。当应用程序在Apache上部署时,我得到一个500 Internal Server error,甚至无法加载主页。

操作系统是RHEL7。我已经将“models.log”的文件权限改为读写“。仍然面临这个问题。在apache conf文件中,我也授予了权限。

+1

在debug = true模式下运行并检查确切的问题 – sprksh

+0

发布错误。我会尽力帮助你。 – AceLearn

+0

它在Django服务器上工作。不在Apache上工作。是否需要更改sys.path的wsgi.py文件? – Phoenix

回答

1

这是一个与SELinux相关的问题。如果您在本地运行,那么你有充分的权利写入日志文件。

如果您使用apache运行服务器,则apache必须具有写入文件的完整权限。

要检查它,请登录为apache sudo su - apache并尝试访问日志文件。

解决方法很简单:将日志文件放在/var/log文件夹中。或者创建/var/log/myapp文件夹并授予其完全访问权限chmod 777 /var/log/myapp

import logging 
logging.basicConfig(filename='/var/log/myapp/models.log',level=logging.INFO) 
logging.info('Staring execution. Models for db tables') 
0

进程需要执行(不只读)访问目录和父目录,最好的办法是以进程正在运行的用户身份登录并尝试手动创建该文件,我猜你会得到一个权限错误,创建目录并授予相关权限目录。

+0

已经完成了。 – Phoenix