]> git.ipfire.org Git - oddments/ddns.git/blobdiff - src/ddns/__init__.py
Log an entire stack trace for unhandled exceptions.
[oddments/ddns.git] / src / ddns / __init__.py
index c50cf38dd803864db2dc2fd98df3dcf28e5386ed..6828119ea27371427a11ef4114f68ac506355f24 100644 (file)
@@ -52,7 +52,11 @@ class DDNSCore(object):
        def __init__(self, debug=False):
                # In debug mode, enable debug logging.
                if debug:
-                       logger.setLevel(logging.DEBUG)
+                       rootlogger = logging.getLogger("ddns")
+                       rootlogger.setLevel(logging.DEBUG)
+                       for handler in rootlogger.handlers:
+                               handler.setLevel(logging.DEBUG)
+
                        logger.debug(_("Debugging mode enabled"))
 
                # Initialize the settings array.
@@ -91,11 +95,26 @@ class DDNSCore(object):
                        Simply registers all providers.
                """
                for provider in (
+                       DDNSProviderAllInkl,
                        DDNSProviderDHS,
                        DDNSProviderDNSpark,
+                       DDNSProviderDtDNS,
+                       DDNSProviderDynDNS,
+                       DDNSProviderDynU,
+                       DDNSProviderEasyDNS,
+                       DDNSProviderFreeDNSAfraidOrg,
+                       DDNSProviderNamecheap,
                        DDNSProviderNOIP,
                        DDNSProviderLightningWireLabs,
+                       DDNSProviderOVH,
+                       DDNSProviderRegfish,
                        DDNSProviderSelfhost,
+                       DDNSProviderSPDNS,
+                       DDNSProviderStrato,
+                       DDNSProviderTwoDNS,
+                       DDNSProviderUdmedia,
+                       DDNSProviderVariomedia,
+                       DDNSProviderZoneedit,
                ):
                        self.register_provider(provider)
 
@@ -106,6 +125,8 @@ class DDNSCore(object):
                return sorted(self.providers.keys())
 
        def load_configuration(self, filename):
+               logger.debug(_("Loading configuration file %s") % filename)
+
                configs = ConfigParser.SafeConfigParser()
                configs.read([filename,])
 
@@ -176,8 +197,7 @@ class DDNSCore(object):
 
                except Exception, e:
                        logger.error(_("Dynamic DNS update for %(hostname)s (%(provider)s) throwed an unhandled exception:") % \
-                               { "hostname" : entry.hostname, "provider" : entry.name })
-                       logger.error("  %s" % e)
+                               { "hostname" : entry.hostname, "provider" : entry.name }, exc_info=True)
 
                else:
                        logger.info(_("Dynamic DNS update for %(hostname)s (%(provider)s) successful") % \