Browse Source

Added SENTRY_NAME setting

David Cramer 14 years ago
parent
commit
d6bb15633e
4 changed files with 33 additions and 3 deletions
  1. 10 0
      README.rst
  2. 1 2
      sentry/client/base.py
  3. 4 1
      sentry/settings.py
  4. 18 0
      sentry/tests/tests.py

+ 10 - 0
README.rst

@@ -178,6 +178,12 @@ Default value is ``False``
 
 .. note:: Normally when Django DEBUG is enabled the Sentry exception handler is immediately skipped
 
+###########
+SENTRY_NAME
+###########
+
+This will override the ``server_name`` value for this installation. Defaults to ``socket.get_hostname()``.
+
 =====
 Usage
 =====
@@ -192,6 +198,10 @@ Set up a viewer server (or use your existing application server) and add sentry
 
 Now enjoy your beautiful new error tracking at ``/sentry/``.
 
+===
+API
+===
+
 For the technical, here's some further docs:
 
 If you wish to access these within your own views and models, you may do so via the standard model API::

+ 1 - 2
sentry/client/base.py

@@ -4,7 +4,6 @@ try:
 except ImportError:
     import pickle
 import logging
-import socket
 import sys
 import traceback as traceback_mod
 import urllib
@@ -29,7 +28,7 @@ class SentryClient(object):
             kwargs = filter_(None).process(kwargs) or kwargs
 
         kwargs.setdefault('level', logging.ERROR)
-        kwargs.setdefault('server_name', socket.gethostname())
+        kwargs.setdefault('server_name', settings.NAME)
 
         checksum = construct_checksum(**kwargs)
 

+ 4 - 1
sentry/settings.py

@@ -3,6 +3,7 @@ from django.utils.hashcompat import md5_constructor
 from django.utils.translation import ugettext_lazy as _
 
 import logging
+import socket
 
 # Allow local testing of Sentry even if DEBUG is enabled
 DEBUG = getattr(settings, 'DEBUG', False) and not getattr(settings, 'SENTRY_TESTING', False)
@@ -52,4 +53,6 @@ if USE_LOGGING:
 else:
     default_client = 'sentry.client.base.SentryClient'
 
-CLIENT = getattr(settings, 'SENTRY_CLIENT', default_client)
+CLIENT = getattr(settings, 'SENTRY_CLIENT', default_client)
+
+NAME = getattr(settings, 'SENTRY_NAME', socket.gethostname())

+ 18 - 0
sentry/tests/tests.py

@@ -484,6 +484,24 @@ class SentryTestCase(TestCase):
         
         settings.MIDDLEWARE_CLASSES = orig
 
+    def testSettingName(self):
+        orig = settings.NAME
+        settings.NAME = 'foo'
+        
+        self.assertRaises(Exception, self.client.get, reverse('sentry-raise-exc'))
+
+        self.assertEquals(Message.objects.count(), 1)
+        self.assertEquals(GroupedMessage.objects.count(), 1)
+        last = Message.objects.get()
+        self.assertEquals(last.logger, 'root')
+        self.assertEquals(last.class_name, 'Exception')
+        self.assertEquals(last.level, logging.ERROR)
+        self.assertEquals(last.message, 'view exception')
+        self.assertEquals(last.server_name, 'foo')
+        self.assertEquals(last.view, 'sentry.tests.views.raise_exc')
+        
+        settings.NAME = orig
+
 class SentryViewsTest(TestCase):
     urls = 'sentry.tests.urls'
     fixtures = ['sentry/tests/fixtures/views.json']