The title pretty much sums up the question. I have a django based site load balanced across multiple servers. As much as all the servers should be identical, $#%& happens... It would be really useful if the error emails django sends included the hostname of the server. How would this be achieved?
p.s. It's django 1.3 on python 2.7.2 if that makes any difference.
UPDATE:
I can get the hostname, that's not the issue. The problem is how to add it to the error emails.
You can use the SERVER_EMAIL
or EMAIL_SUBJECT_PREFIX
setting.
In your settings.py:
import socket
SERVER_ADMIN = 'alerts+{0}@mydomain.com'.format(socket.gethostname())
or
import socket
EMAIL_SUBJECT_PREFIX = '[my_django_app - {0}] '.format(socket.gethostname())
If you want the httpd server name you can get it from the request.
site_name = request.META['SERVER_NAME']
This isn't necessarily the hostname of the machine, but it is the server name alias in the Apache/IIS directive for the site. Alternately, if you absolutely need the server's machine name:
import socket
host_name = socket.gethostname()
UPDATE:
Now that you have the hostname of the particular server, you can add that to the error emails in a couple of ways. You could write your own error notification system, or as @sdolan mentioned you can change the SERVER_ADMIN
or EMAIL SUBJECT_PREFIX
directives in settings.py
. Or, you can change your SERVER_EMAIL
directive. You can use the "{0}".format(socket.gethostname())
syntax, or you can use the string joining of a list of strings "".join(string_parts_list)
.
# settings.py
import socket
SERVER_EMAIL = "".join(['webmaster@', socket.gethostname(), '.com'])
Python's socket.gethostname()
(socket docs) is one method.
from socket import gethostname; print gethostname()
You can also get some parameters from os.uname()
(os docs)
import os; print os.uname()[1]
Would get the 'nodename'.
I can get the hostname, that's not the issue. The problem is how to add it to the error emails.
plus he only wants to include the hostname to the admin error emails - Muhia NJoroge 2015-05-04 21:08