title: Why can my Django app not write to its log file?
body: <p><strong>$ sudo /etc/init.d/apache2 restart</strong>  </p>
  
  <pre><code> * Restarting web server apache2  
   ... waiting .   ...done.  
  </code></pre>
  
  <p>username@servername Thu Nov 04 18:54:37 ~/public_html/IDM_app<br>
  <strong>$ sudo tail -n 60 /var/log/apache2/error.log</strong>  </p>
  
  <pre><code>[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] mod_wsgi (pid=28760): Exception occurred processing WSGI script '/home/username/public_html/idm.wsgi'.  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] Traceback (most recent call last):  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]   File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/core/handlers/wsgi.py", line 230, in __call__  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]     self.load_middleware()  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]   File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/core/handlers/base.py", line 33, in load_middleware  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]     for middleware_path in settings.MIDDLEWARE_CLASSES:  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]   File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/utils/functional.py", line 276, in __getattr__  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]     self._setup()  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]   File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/conf/__init__.py", line 40, in _setup  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]     self._wrapped = Settings(settings_module)  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]   File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/conf/__init__.py", line 73, in __init__  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]     mod = importlib.import_module(self.SETTINGS_MODULE)  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]   File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/utils/importlib.py", line 35, in import_module  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]     __import__(name)  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]   File "/home/username/public_html/IDM_app/settings.py", line 60, in &lt;module&gt;  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]     from settings_local import *  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]   File "/home/username/public_html/IDM_app/settings_local.py", line 1, in &lt;module&gt;  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]     from settings_Slicehost_idm import *  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]   File "/home/username/public_html/IDM_app/settings_Slicehost_idm.py", line 12, in &lt;module&gt;  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]     format='%(pathname)s TIME: %(asctime)s MSG: %(filename)s:%(funcName)s:%(lineno)d %(message)s',  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]   File "/usr/local/lib/python2.7/logging/__init__.py", line 1500, in basicConfig  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]     hdlr = FileHandler(filename, mode)  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]   File "/usr/local/lib/python2.7/logging/__init__.py", line 889, in __init__  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]     StreamHandler.__init__(self, self._open())  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]   File "/usr/local/lib/python2.7/logging/__init__.py", line 908, in _open  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]     stream = open(self.baseFilename, self.mode)  
  [Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] IOError: [Errno 13] Permission denied: '/home/username/public_html/IDM_app/log/django.osqa.log'  
  [Thu Nov 04 18:54:36 2010] [notice] caught SIGTERM, shutting down  
  [Thu Nov 04 18:54:37 2010] [notice] Apache/2.2.14 (Ubuntu) mod_wsgi/3.3 Python/2.7 configured -- resuming normal operations  
  </code></pre>
  
  <p>username@servername Thu Nov 04 18:54:42 ~/public_html/IDM_app<br>
  <strong>$ ls -l /home/username/public_html/IDM_app/log/django.osqa.log</strong>  </p>
  
  <pre><code>-rw-r--r-- 1 username 0 Nov  4 18:24 /home/username/public_html/IDM_app/log/django.osqa.log  
  </code></pre>
  
  <p>username@servername Thu Nov 04 19:08:41 ~/public_html/IDM_app<br>
  **$ ls -l ~/public_html/idm.wsgi   **</p>
  
  <pre><code>-rw-r--r-- 1 username 222 Nov  4 18:53 /home/username/public_html/idm.wsgi  
  </code></pre>
  
  <p>username@servername Thu Nov 04 19:10:50 ~/public_html/IDM_app<br>
  <strong>$ cat ~/public_html/idm.wsgi</strong>  </p>
  
  <pre><code>import os
  import sys
  
  sys.path.append('/home/username/public_html/IDM_app/')
  
  os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
  
  import django.core.handlers.wsgi
  
  application = django.core.handlers.wsgi.WSGIHandler()
  </code></pre>
  
  <p>username@servername Thu Nov 04 19:11:02 ~/public_html/IDM_app 
  <strong>$ whoami</strong>  </p>
  
  <pre><code>username
  </code></pre>
  
  <p>If Apache2 uses the Virtual Host setup file @ ~/public_html/idm.wsgi, what User does the system think is trying to write the the log file log/django.osqa.log ?</p>
  
  <p>Why can my Django app not write to its log file?</p>