Improve error reporting

This commit is contained in:
Ian Renton
2026-07-25 09:33:18 +01:00
parent 374a326874
commit ba08555a30
10 changed files with 41 additions and 33 deletions
+17 -9
View File
@@ -511,13 +511,20 @@ class LookupHelper:
self._qrz_base_url + "?s=" + session_key + "&callsign=" + urllib.parse.quote_plus(lookup_call), self._qrz_base_url + "?s=" + session_key + "&callsign=" + urllib.parse.quote_plus(lookup_call),
headers=HTTP_HEADERS, timeout=10) headers=HTTP_HEADERS, timeout=10)
if response.ok: if response.ok:
raw = xmltodict.parse(response.content).get("QRZDatabase", {}).get("Callsign") qrz_response = xmltodict.parse(response.content).get("QRZDatabase", {})
if raw: if qrz_response:
data = _normalize_qrz_data(raw) if "Callsign" in qrz_response:
data = _normalize_qrz_data(qrz_response.get("Callsign"))
self._qrz_callsign_data_cache.add(call, data, expire=604800) # 1 week in seconds self._qrz_callsign_data_cache.add(call, data, expire=604800) # 1 week in seconds
return data return data
elif "Session" in qrz_response and "Error" in qrz_response.get("Session"):
# Errors here are normally just "callsign not in database", no need to log that ourselves
# above debug level.
logging.debug("QRZ returned an error looking up callsign %s: %s", lookup_call,
qrz_response.get("Session").get("Error"))
elif not response.from_cache: elif not response.from_cache:
logging.warning("Malformed response looking up callsign %s using QRZ", lookup_call) logging.warning("QRZ returned a malformed response looking up callsign %s", lookup_call)
elif not response.from_cache: elif not response.from_cache:
logging.warning("HTTP %d looking up callsign %s using QRZ", lookup_call) logging.warning("HTTP %d looking up callsign %s using QRZ", lookup_call)
@@ -525,9 +532,10 @@ class LookupHelper:
continue continue
except ConnectionError: except ConnectionError:
logging.warning(f"Connection error when looking up callsign %s using QRZ", lookup_call) logging.warning(f"Connection error when looking up callsign %s using QRZ", lookup_call)
continue
except Exception: except Exception:
logging.error("Exception when looking up callsign %s using QRZ", lookup_call) logging.error("Exception when looking up callsign %s using QRZ", lookup_call, exc_info=True)
return None continue
# Not found in QRZ; cache None so we don't keep retrying # Not found in QRZ; cache None so we don't keep retrying
self._qrz_callsign_data_cache.add(call, None, expire=604800) # 1 week in seconds self._qrz_callsign_data_cache.add(call, None, expire=604800) # 1 week in seconds
@@ -580,15 +588,15 @@ class LookupHelper:
return data return data
elif not response.from_cache: elif not response.from_cache:
logging.warning("HTTP %d looking up callsign %s using HamQTH", response.status_code, lookup_call) logging.warning("HTTP %d looking up callsign %s using HamQTH", response.status_code, lookup_call)
return None
except (KeyError, ValueError): except (KeyError, ValueError):
continue continue
except ConnectionError: except ConnectionError:
logging.warning(f"Connection error when looking up callsign %s using HamQTH", lookup_call) logging.warning(f"Connection error when looking up callsign %s using HamQTH", lookup_call)
continue
except Exception: except Exception:
logging.error("Exception when looking up callsign %s using HamQTH", lookup_call) logging.error("Exception when looking up callsign %s using HamQTH", lookup_call, exc_info=True)
return None continue
# Not found in HamQTH; cache None so we don't keep retrying # Not found in HamQTH; cache None so we don't keep retrying
self._hamqth_callsign_data_cache.add(call, None, expire=604800) # 1 week in seconds self._hamqth_callsign_data_cache.add(call, None, expire=604800) # 1 week in seconds
+1 -1
View File
@@ -76,7 +76,7 @@
</div> </div>
<script src="/js/add-spot.js?v=1784966577"></script> <script src="/js/add-spot.js?v=1784968398"></script>
<script>$(document).ready(function () { <script>$(document).ready(function () {
$("#nav-link-add-spot").addClass("active"); $("#nav-link-add-spot").addClass("active");
}); <!-- highlight active page in nav --></script> }); <!-- highlight active page in nav --></script>
+1 -1
View File
@@ -75,7 +75,7 @@
</div> </div>
<script src="/js/alerts.js?v=1784966578"></script> <script src="/js/alerts.js?v=1784968398"></script>
<script>$(document).ready(function () { <script>$(document).ready(function () {
$("#nav-link-alerts").addClass("active"); $("#nav-link-alerts").addClass("active");
}); <!-- highlight active page in nav --></script> }); <!-- highlight active page in nav --></script>
+2 -2
View File
@@ -75,8 +75,8 @@
<script> <script>
let spotProvidersEnabledByDefault = {% raw json_encode(web_ui_options["spot-providers-enabled-by-default"]) %}; let spotProvidersEnabledByDefault = {% raw json_encode(web_ui_options["spot-providers-enabled-by-default"]) %};
</script> </script>
<script src="/js/spotsbandsandmap.js?v=1784966577"></script> <script src="/js/spotsbandsandmap.js?v=1784968398"></script>
<script src="/js/bands.js?v=1784966577"></script> <script src="/js/bands.js?v=1784968398"></script>
<script>$(document).ready(function () { <script>$(document).ready(function () {
$("#nav-link-bands").addClass("active"); $("#nav-link-bands").addClass("active");
}); <!-- highlight active page in nav --></script> }); <!-- highlight active page in nav --></script>
+5 -5
View File
@@ -1,6 +1,6 @@
{% extends "skeleton.html" %} {% extends "skeleton.html" %}
{% block head_extra %} {% block head_extra %}
<link rel="stylesheet" href="/css/style.css?v=1784966577" type="text/css"> <link rel="stylesheet" href="/css/style.css?v=1784968398" type="text/css">
<link href="/vendor/css/bootstrap-5.3.8.min.css" rel="stylesheet"> <link href="/vendor/css/bootstrap-5.3.8.min.css" rel="stylesheet">
<link href="/vendor/css/fontawesome-6.7.2.min.css" rel="stylesheet"> <link href="/vendor/css/fontawesome-6.7.2.min.css" rel="stylesheet">
<link href="/vendor/css/solid-6.7.2.min.css" rel="stylesheet"> <link href="/vendor/css/solid-6.7.2.min.css" rel="stylesheet">
@@ -10,10 +10,10 @@
<script src="/vendor/js/bootstrap-5.3.8.bundle.min.js"></script> <script src="/vendor/js/bootstrap-5.3.8.bundle.min.js"></script>
<script src="/vendor/js/tinycolor2-1.6.0.min.js"></script> <script src="/vendor/js/tinycolor2-1.6.0.min.js"></script>
<script src="/js/utils.js?v=1784966577"></script> <script src="/js/utils.js?v=1784968398"></script>
<script src="/js/ui-ham.js?v=1784966577"></script> <script src="/js/ui-ham.js?v=1784968398"></script>
<script src="/js/geo.js?v=1784966577"></script> <script src="/js/geo.js?v=1784968398"></script>
<script src="/js/common.js?v=1784966577"></script> <script src="/js/common.js?v=1784968398"></script>
{% end %} {% end %}
{% block body %} {% block body %}
<div class="container"> <div class="container">
+1 -1
View File
@@ -284,7 +284,7 @@
</div> </div>
<script src="/vendor/js/chart-4.4.9.umd.min.js"></script> <script src="/vendor/js/chart-4.4.9.umd.min.js"></script>
<script src="/js/conditions.js?v=1784966577"></script> <script src="/js/conditions.js?v=1784968398"></script>
<script>$(document).ready(function () { <script>$(document).ready(function () {
$("#nav-link-conditions").addClass("active"); $("#nav-link-conditions").addClass("active");
}); <!-- highlight active page in nav --></script> }); <!-- highlight active page in nav --></script>
+2 -2
View File
@@ -95,8 +95,8 @@
<script> <script>
let spotProvidersEnabledByDefault = {% raw json_encode(web_ui_options["spot-providers-enabled-by-default"]) %}; let spotProvidersEnabledByDefault = {% raw json_encode(web_ui_options["spot-providers-enabled-by-default"]) %};
</script> </script>
<script src="/js/spotsbandsandmap.js?v=1784966578"></script> <script src="/js/spotsbandsandmap.js?v=1784968398"></script>
<script src="/js/map.js?v=1784966578"></script> <script src="/js/map.js?v=1784968398"></script>
<script>$(document).ready(function () { <script>$(document).ready(function () {
$("#nav-link-map").addClass("active"); $("#nav-link-map").addClass("active");
}); <!-- highlight active page in nav --></script> }); <!-- highlight active page in nav --></script>
+2 -2
View File
@@ -116,8 +116,8 @@
<script> <script>
let spotProvidersEnabledByDefault = {% raw json_encode(web_ui_options["spot-providers-enabled-by-default"]) %}; let spotProvidersEnabledByDefault = {% raw json_encode(web_ui_options["spot-providers-enabled-by-default"]) %};
</script> </script>
<script src="/js/spotsbandsandmap.js?v=1784966577"></script> <script src="/js/spotsbandsandmap.js?v=1784968398"></script>
<script src="/js/spots.js?v=1784966577"></script> <script src="/js/spots.js?v=1784968398"></script>
<script>$(document).ready(function () { <script>$(document).ready(function () {
$("#nav-link-spots").addClass("active"); $("#nav-link-spots").addClass("active");
}); <!-- highlight active page in nav --></script> }); <!-- highlight active page in nav --></script>
+1 -1
View File
@@ -59,7 +59,7 @@
</div> </div>
</div> </div>
<script src="/js/status.js?v=1784966577"></script> <script src="/js/status.js?v=1784968398"></script>
<script> <script>
$(document).ready(function () { $(document).ready(function () {
$("#nav-link-status").addClass("active"); $("#nav-link-status").addClass("active");