old_contents: import traceback
  import socket
  import warnings
  import md5
  
  from django.conf import settings
  from django.http import Http404
  
  __all__ = ('DBLogMiddleware', 'DBLOG_CATCH_404_ERRORS')
  
  DBLOG_CATCH_404_ERRORS = getattr(settings, 'DBLOG_CATCH_404_ERRORS', False)
  
  class DBLogMiddleware(object):
      def process_exception(self, request, exception):
          if not DBLOG_CATCH_404_ERRORS and isinstance(exception, Http404):
              return
          server_name = socket.gethostname()
          tb_text     = traceback.format_exc()
          class_name  = exception.__class__.__name__
          checksum    = md5.new(tb_text).hexdigest()
  
          defaults = dict(
              class_name  = class_name,
              message     = getattr(exception, 'message', ''),
              url         = request.build_absolute_uri(),
              server_name = server_name,
              traceback   = tb_text,
          )
  
          try:
              Error.objects.create(**defaults)
              batch, created = ErrorBatch.objects.get_or_create(
                  class_name = class_name,
                  server_name = server_name,
                  checksum = checksum,
                  defaults = defaults
              )
              if not created:
                  batch.times_seen += 1
                  batch.resolved = False
                  batch.save()
          except Exception, exc:
              warnings.warn(unicode(exc))
new_contents: import traceback
  import socket
  import warnings
  import md5
  
  from django.conf import settings
  from django.http import Http404
  
  from djangodblog.models import Error, ErrorBatch
  
  __all__ = ('DBLogMiddleware', 'DBLOG_CATCH_404_ERRORS')
  
  DBLOG_CATCH_404_ERRORS = getattr(settings, 'DBLOG_CATCH_404_ERRORS', False)
  
  class DBLogMiddleware(object):
      def process_exception(self, request, exception):
          if not DBLOG_CATCH_404_ERRORS and isinstance(exception, Http404):
              return
          server_name = socket.gethostname()
          tb_text     = traceback.format_exc()
          class_name  = exception.__class__.__name__
          checksum    = md5.new(tb_text).hexdigest()
  
          defaults = dict(
              class_name  = class_name,
              message     = getattr(exception, 'message', ''),
              url         = request.build_absolute_uri(),
              server_name = server_name,
              traceback   = tb_text,
          )
  
          try:
              Error.objects.create(**defaults)
              batch, created = ErrorBatch.objects.get_or_create(
                  class_name = class_name,
                  server_name = server_name,
                  checksum = checksum,
                  defaults = defaults
              )
              if not created:
                  batch.times_seen += 1
                  batch.resolved = False
                  batch.save()
          except Exception, exc:
              warnings.warn(unicode(exc))
subject: patch for #6: middleware fails to import