2016-08-31 66 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