diff --git a/doc/upgrade.rst b/doc/upgrade.rst index 4e649796d..113a9de01 100644 --- a/doc/upgrade.rst +++ b/doc/upgrade.rst @@ -130,6 +130,36 @@ Rebuild Virtual Environment Specific instructions ********************* +Version 2.6.1 +============= + +Required changes to :file:`settings.py` +--------------------------------------- + +- Add the following lines to ``LOGGING`` variable: + + .. sourcecode:: python + + 'handlers': { + ... + 'syslog': { + 'class': 'logging.handlers.SysLogHandler', + 'facility': SysLogHandler.LOG_SYSLOG, + 'formatter': 'syslog' + }, + ... + }, + 'loggers': { + ... + 'modoboa.dns': { + 'handlers': ['syslog'], + 'level': 'INFO', + 'propagate': False + }, + ... + } + + Version 2.6.0 ============= diff --git a/modoboa/admin/lib.py b/modoboa/admin/lib.py index 72c611895..8b5faba2e 100644 --- a/modoboa/admin/lib.py +++ b/modoboa/admin/lib.py @@ -213,7 +213,7 @@ def get_authoritative_resolver(domain, resolver=None): def get_dns_records(name, typ, resolver=None): """Retrieve DNS records for given name and type.""" - logger = logging.getLogger("modoboa.admin") + logger = logging.getLogger("modoboa.dns") try: resolver = get_authoritative_resolver(name, resolver=resolver) @@ -242,7 +242,7 @@ def get_dns_records(name, typ, resolver=None): def get_domain_mx_list(domain): """Return a list of MX IP address for domain.""" result = [] - logger = logging.getLogger("modoboa.admin") + logger = logging.getLogger("modoboa.dns") resolver = get_dns_resolver() dns_answers = get_dns_records(domain, "MX", resolver) if dns_answers is None: diff --git a/modoboa/admin/tests/test_mx.py b/modoboa/admin/tests/test_mx.py index 54d0ca305..3bf6df74f 100644 --- a/modoboa/admin/tests/test_mx.py +++ b/modoboa/admin/tests/test_mx.py @@ -138,7 +138,7 @@ class MXTestCase(ModoTestCase): """Test to get error loggins from specific DNS server.""" mock_query.side_effect = utils.mock_dns_query_result mock_ip_address.side_effect = utils.mock_ip_address_result - with LogCapture("modoboa.admin") as log: + with LogCapture("modoboa.dns") as log: get_domain_mx_list("does-not-exist.example.com") get_domain_mx_list("no-mx.example.com") get_domain_mx_list("no-ns-servers.example.com") @@ -148,36 +148,36 @@ class MXTestCase(ModoTestCase): get_domain_mx_list("bad-response.example.com") log.check( ( - "modoboa.admin", + "modoboa.dns", "ERROR", _("No DNS record found for %s") % "does-not-exist.example.com", ), - ("modoboa.admin", "ERROR", _("No MX record for %s") % "no-mx.example.com"), - ("modoboa.admin", "ERROR", _("No working name servers found")), + ("modoboa.dns", "ERROR", _("No MX record for %s") % "no-mx.example.com"), + ("modoboa.dns", "ERROR", _("No working name servers found")), ( - "modoboa.admin", + "modoboa.dns", "WARNING", _("DNS resolution timeout, unable to query %s at the moment") % "timeout.example.com", ), ( - "modoboa.admin", + "modoboa.dns", "ERROR", _("No DNS record found for %s") % "does-not-exist.example.com", ), ( - "modoboa.admin", + "modoboa.dns", "ERROR", _("No DNS record found for %s") % "does-not-exist.example.com", ), ( - "modoboa.admin", + "modoboa.dns", "WARNING", _("Invalid IP address format for %(domain)s; %(addr)s") % {"domain": "bad-response.example.com", "addr": "000.0.0.0"}, ), ( - "modoboa.admin", + "modoboa.dns", "WARNING", _("Invalid IP address format for %(domain)s; %(addr)s") % {"domain": "bad-response.example.com", "addr": "000.0.0.0"}, @@ -193,15 +193,15 @@ class MXTestCase(ModoTestCase): localconfig = core_models.LocalConfig.objects.first() localconfig.parameters.set_value("enable_ipv6_mx_checks", True, "admin") localconfig.save() - with LogCapture("modoboa.admin") as log: + with LogCapture("modoboa.dns") as log: get_domain_mx_list("test3.com") log.check( - ("modoboa.admin", "ERROR", _("No AAAA record for %s") % "mx3.example.com") + ("modoboa.dns", "ERROR", _("No AAAA record for %s") % "mx3.example.com") ) localconfig = core_models.LocalConfig.objects.first() localconfig.parameters.set_value("enable_ipv6_mx_checks", False, "admin") localconfig.save() - with LogCapture("modoboa.admin") as log2: + with LogCapture("modoboa.dns") as log2: get_domain_mx_list("test3.com") log2.check() diff --git a/modoboa/core/commands/templates/settings.py.tpl b/modoboa/core/commands/templates/settings.py.tpl index 7ba925386..8d5ced9e5 100644 --- a/modoboa/core/commands/templates/settings.py.tpl +++ b/modoboa/core/commands/templates/settings.py.tpl @@ -361,6 +361,11 @@ LOGGING = { 'facility': SysLogHandler.LOG_MAIL, 'formatter': 'syslog' }, + 'syslog': { + 'class': 'logging.handlers.SysLogHandler', + 'facility': SysLogHandler.LOG_SYSLOG, + 'formatter': 'syslog' + }, 'modoboa': { 'class': 'modoboa.core.loggers.SQLHandler', } @@ -381,6 +386,11 @@ LOGGING = { 'level': 'INFO', 'propagate': False }, + 'modoboa.dns': { + 'handlers': ['syslog'], + 'level': 'INFO', + 'propagate': False + }, 'modoboa.policyd': { 'handlers': ['syslog-mail'], 'level': 'INFO',