Logging improvements

This commit is contained in:
Ian Renton
2026-07-26 07:51:25 +01:00
parent c3bcc1190d
commit 77d7fd70d9
17 changed files with 48 additions and 48 deletions
+3 -3
View File
@@ -4,7 +4,7 @@ from threading import Thread, Event
import pytz import pytz
import requests import requests
from requests.exceptions import ConnectionError, ReadTimeout from requests.exceptions import ConnectionError, ReadTimeout, ConnectTimeout
from alertproviders.alert_provider import AlertProvider from alertproviders.alert_provider import AlertProvider
from core.constants import HTTP_HEADERS from core.constants import HTTP_HEADERS
@@ -59,8 +59,8 @@ class HTTPAlertProvider(AlertProvider):
except ConnectionError: except ConnectionError:
logging.warning(f"Connection error when accessing {self.name} alerts API.") logging.warning(f"Connection error when accessing {self.name} alerts API.")
except ReadTimeout: except (ConnectTimeout, ReadTimeout):
logging.warning(f"Read timeout when accessing {self.name} alerts API.") logging.warning(f"Timeout when accessing {self.name} alerts API.")
except Exception: except Exception:
self.status = "Error" self.status = "Error"
logging.exception("Exception in HTTP JSON Alert Provider (" + self.name + ")") logging.exception("Exception in HTTP JSON Alert Provider (" + self.name + ")")
+9 -9
View File
@@ -11,7 +11,7 @@ from pyhamtools import LookupLib, Callinfo, callinfo
from pyhamtools.exceptions import APIKeyMissingError from pyhamtools.exceptions import APIKeyMissingError
from pyhamtools.frequency import freq_to_band from pyhamtools.frequency import freq_to_band
from pyhamtools.locator import latlong_to_locator from pyhamtools.locator import latlong_to_locator
from requests.exceptions import ConnectionError, ReadTimeout from requests.exceptions import ConnectionError, ReadTimeout, ConnectTimeout
from requests_cache import CachedSession from requests_cache import CachedSession
from core.cache_utils import SEMI_STATIC_URL_DATA_CACHE from core.cache_utils import SEMI_STATIC_URL_DATA_CACHE
@@ -156,8 +156,8 @@ class LookupHelper:
except ConnectionError: except ConnectionError:
logging.warning(f"Connection error when downloading Clublog cty.xml.") logging.warning(f"Connection error when downloading Clublog cty.xml.")
except ReadTimeout: except (ConnectTimeout, ReadTimeout):
logging.warning(f"Read timeout when downloading Clublog cty.xml.") logging.warning(f"Timeout when downloading Clublog cty.xml.")
except Exception as e: except Exception as e:
logging.error("Exception when downloading Clublog cty.xml", e) logging.error("Exception when downloading Clublog cty.xml", e)
return False return False
@@ -182,8 +182,8 @@ class LookupHelper:
except ConnectionError: except ConnectionError:
logging.warning(f"Connection error when downloading dxcc.json.") logging.warning(f"Connection error when downloading dxcc.json.")
except ReadTimeout: except (ConnectTimeout, ReadTimeout):
logging.warning(f"Read timeout when downloading dxcc.json.") logging.warning(f"Timeout when downloading dxcc.json.")
except Exception as e: except Exception as e:
logging.error("Exception when downloading dxcc.json", e) logging.error("Exception when downloading dxcc.json", e)
return False return False
@@ -541,8 +541,8 @@ class LookupHelper:
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 continue
except ReadTimeout: except (ConnectTimeout, ReadTimeout):
logging.warning(f"Read timeout when looking up callsign %s using QRZ.", lookup_call) logging.warning(f"Timeout when looking up callsign %s using QRZ.", lookup_call)
continue continue
except Exception: except Exception:
logging.error("Exception when looking up callsign %s using QRZ", lookup_call, exc_info=True) logging.error("Exception when looking up callsign %s using QRZ", lookup_call, exc_info=True)
@@ -608,8 +608,8 @@ class LookupHelper:
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 continue
except ReadTimeout: except (ConnectTimeout, ReadTimeout):
logging.warning(f"Read timeout when looking up callsign %s using HamQTH", lookup_call) logging.warning(f"Timeout when looking up callsign %s using HamQTH", lookup_call)
continue continue
except Exception: except Exception:
logging.error("Exception when looking up callsign %s using HamQTH", lookup_call, exc_info=True) logging.error("Exception when looking up callsign %s using HamQTH", lookup_call, exc_info=True)
+3 -3
View File
@@ -2,7 +2,7 @@ import csv
import logging import logging
from pyhamtools.locator import latlong_to_locator, locator_to_latlong from pyhamtools.locator import latlong_to_locator, locator_to_latlong
from requests.exceptions import ConnectionError, ReadTimeout from requests.exceptions import ConnectionError, ReadTimeout, ConnectTimeout
from core.cache_utils import SEMI_STATIC_URL_DATA_CACHE from core.cache_utils import SEMI_STATIC_URL_DATA_CACHE
from core.constants import SIGS, HTTP_HEADERS from core.constants import SIGS, HTTP_HEADERS
@@ -271,8 +271,8 @@ def populate_sig_ref_info(sig_ref):
except ConnectionError: except ConnectionError:
logging.warning("Connection error when looking up sig_ref info for " + sig + " ref " + ref_id) logging.warning("Connection error when looking up sig_ref info for " + sig + " ref " + ref_id)
except ReadTimeout: except (ConnectTimeout, ReadTimeout):
logging.warning(f"Read timeout when looking up sig_ref info for " + sig + " ref " + ref_id) logging.warning(f"Timeout when looking up sig_ref info for " + sig + " ref " + ref_id)
except Exception: except Exception:
logging.error("Exception when looking up sig_ref info for " + sig + " ref " + ref_id, exc_info=True) logging.error("Exception when looking up sig_ref info for " + sig + " ref " + ref_id, exc_info=True)
return sig_ref return sig_ref
+3 -3
View File
@@ -5,7 +5,7 @@ from threading import Thread, Event
import pytz import pytz
import requests import requests
from requests.exceptions import ConnectionError, ReadTimeout from requests.exceptions import ConnectionError, ReadTimeout, ConnectTimeout
from core.constants import HTTP_HEADERS from core.constants import HTTP_HEADERS
from solarconditionsproviders.ionosonde_utils import compute_band_states from solarconditionsproviders.ionosonde_utils import compute_band_states
@@ -134,8 +134,8 @@ class GIROIonosonde(SolarConditionsProvider):
logging.warning(f"HTTP {http_response.status_code} when calling Giro ionosonde API.") logging.warning(f"HTTP {http_response.status_code} when calling Giro ionosonde API.")
return None, None, None return None, None, None
return self._parse_all(http_response.text) return self._parse_all(http_response.text)
except ReadTimeout: except (ConnectTimeout, ReadTimeout):
logging.warning(f"Read timeout when accessing Giro ionosonde API.") logging.warning(f"Timeout when accessing Giro ionosonde API.")
return None, None, None return None, None, None
except ConnectionError: except ConnectionError:
logging.warning("Connection error when accessing Giro ionosonde API.") logging.warning("Connection error when accessing Giro ionosonde API.")
@@ -4,7 +4,7 @@ from threading import Thread, Event
import pytz import pytz
import requests import requests
from requests.exceptions import ConnectionError, ReadTimeout from requests.exceptions import ConnectionError, ReadTimeout, ConnectTimeout
from core.constants import HTTP_HEADERS from core.constants import HTTP_HEADERS
from solarconditionsproviders.solar_conditions_provider import SolarConditionsProvider from solarconditionsproviders.solar_conditions_provider import SolarConditionsProvider
@@ -54,8 +54,8 @@ class HTTPSolarConditionsProvider(SolarConditionsProvider):
except ConnectionError: except ConnectionError:
logging.warning(f"Connection error when accessing {self.name} solar conditions API.") logging.warning(f"Connection error when accessing {self.name} solar conditions API.")
except ReadTimeout: except (ConnectTimeout, ReadTimeout):
logging.warning(f"Read timeout when accessing {self.name} solar conditions API.") logging.warning(f"Timeout when accessing {self.name} solar conditions API.")
except Exception: except Exception:
self.status = "Error" self.status = "Error"
logging.exception("Exception in HTTP Solar Conditions Provider (" + self.name + ")") logging.exception("Exception in HTTP Solar Conditions Provider (" + self.name + ")")
+3 -3
View File
@@ -4,7 +4,7 @@ from threading import Thread, Event
import pytz import pytz
import requests import requests
from requests.exceptions import ConnectionError, ReadTimeout from requests.exceptions import ConnectionError, ReadTimeout, ConnectTimeout
from core.constants import HTTP_HEADERS from core.constants import HTTP_HEADERS
from solarconditionsproviders.ionosonde_utils import compute_band_states from solarconditionsproviders.ionosonde_utils import compute_band_states
@@ -118,8 +118,8 @@ class KC2GProp(SolarConditionsProvider):
except ConnectionError: except ConnectionError:
logging.warning("Connection error when accessing KC2G ionosonde API.") logging.warning("Connection error when accessing KC2G ionosonde API.")
except ReadTimeout: except (ConnectTimeout, ReadTimeout):
logging.warning(f"Read timeout when accessing KC2G ionosonde API.") logging.warning(f"Timeout when accessing KC2G ionosonde API.")
except Exception: except Exception:
self.status = "Error" self.status = "Error"
logging.exception("Exception in KC2G ionosonde data provider") logging.exception("Exception in KC2G ionosonde data provider")
+3 -3
View File
@@ -4,7 +4,7 @@ from datetime import datetime
import pytz import pytz
import requests import requests
from requests.exceptions import ConnectionError, ReadTimeout from requests.exceptions import ConnectionError, ReadTimeout, ConnectTimeout
from core.constants import HTTP_HEADERS from core.constants import HTTP_HEADERS
from data.sig_ref import SIGRef from data.sig_ref import SIGRef
@@ -68,8 +68,8 @@ class HEMA(HTTPSpotProvider):
# Add to our list. Don't worry about de-duping, removing old spots etc. at this point; other # Add to our list. Don't worry about de-duping, removing old spots etc. at this point; other
# code will do that for us. # code will do that for us.
new_spots.append(spot) new_spots.append(spot)
except ReadTimeout: except (ConnectTimeout, ReadTimeout):
logging.warning(f"Read timeout when accessing HEMA spots API.") logging.warning(f"Timeout when accessing HEMA spots API.")
except ConnectionError: except ConnectionError:
logging.warning("Connection error when accessing HEMA spots API.") logging.warning("Connection error when accessing HEMA spots API.")
return new_spots return new_spots
+3 -3
View File
@@ -5,7 +5,7 @@ from threading import Thread, Event
import pytz import pytz
import requests import requests
from requests import ReadTimeout from requests import ReadTimeout
from requests.exceptions import ConnectionError from requests.exceptions import ConnectionError, ConnectTimeout
from core.constants import HTTP_HEADERS from core.constants import HTTP_HEADERS
from spotproviders.spot_provider import SpotProvider from spotproviders.spot_provider import SpotProvider
@@ -60,8 +60,8 @@ class HTTPSpotProvider(SpotProvider):
except ConnectionError: except ConnectionError:
logging.warning(f"Connection error when accessing {self.name} spots API.") logging.warning(f"Connection error when accessing {self.name} spots API.")
except ReadTimeout: except (ConnectTimeout, ReadTimeout):
logging.warning(f"Read timeout when accessing {self.name} spots API.") logging.warning(f"Timeout when accessing {self.name} spots API.")
except Exception: except Exception:
self.status = "Error" self.status = "Error"
logging.exception("Exception in HTTP JSON Spot Provider (" + self.name + ")") logging.exception("Exception in HTTP JSON Spot Provider (" + self.name + ")")
+3 -3
View File
@@ -2,7 +2,7 @@ import logging
from datetime import datetime from datetime import datetime
import requests import requests
from requests.exceptions import ConnectionError, ReadTimeout from requests.exceptions import ConnectionError, ReadTimeout, ConnectTimeout
from core.constants import HTTP_HEADERS from core.constants import HTTP_HEADERS
from data.sig_ref import SIGRef from data.sig_ref import SIGRef
@@ -60,6 +60,6 @@ class SOTA(HTTPSpotProvider):
new_spots.append(spot) new_spots.append(spot)
except ConnectionError: except ConnectionError:
logging.warning("Connection error when accessing SOTA spots API") logging.warning("Connection error when accessing SOTA spots API")
except ReadTimeout: except (ConnectTimeout, ReadTimeout):
logging.warning(f"Read timeout when accessing SOTA spots API.") logging.warning(f"Timeout when accessing SOTA spots API.")
return new_spots return new_spots
+1 -1
View File
@@ -76,7 +76,7 @@
</div> </div>
<script src="/static/js/add-spot.js?v=1785048458"></script> <script src="/static/js/add-spot.js?v=1785048685"></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="/static/js/alerts.js?v=1785048458"></script> <script src="/static/js/alerts.js?v=1785048685"></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="/static/js/spotsbandsandmap.js?v=1785048458"></script> <script src="/static/js/spotsbandsandmap.js?v=1785048685"></script>
<script src="/static/js/bands.js?v=1785048458"></script> <script src="/static/js/bands.js?v=1785048685"></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="/static/css/style.css?v=1785048458" type="text/css"> <link rel="stylesheet" href="/static/css/style.css?v=1785048685" type="text/css">
<link href="/static/vendor/css/bootstrap-5.3.8.min.css" rel="stylesheet"> <link href="/static/vendor/css/bootstrap-5.3.8.min.css" rel="stylesheet">
<link href="/static/vendor/css/fontawesome-6.7.2.min.css" rel="stylesheet"> <link href="/static/vendor/css/fontawesome-6.7.2.min.css" rel="stylesheet">
<link href="/static/vendor/css/solid-6.7.2.min.css" rel="stylesheet"> <link href="/static/vendor/css/solid-6.7.2.min.css" rel="stylesheet">
@@ -10,10 +10,10 @@
<script src="/static/vendor/js/bootstrap-5.3.8.bundle.min.js"></script> <script src="/static/vendor/js/bootstrap-5.3.8.bundle.min.js"></script>
<script src="/static/vendor/js/tinycolor2-1.6.0.min.js"></script> <script src="/static/vendor/js/tinycolor2-1.6.0.min.js"></script>
<script src="/static/js/utils.js?v=1785048458"></script> <script src="/static/js/utils.js?v=1785048685"></script>
<script src="/static/js/ui-ham.js?v=1785048458"></script> <script src="/static/js/ui-ham.js?v=1785048685"></script>
<script src="/static/js/geo.js?v=1785048458"></script> <script src="/static/js/geo.js?v=1785048685"></script>
<script src="/static/js/common.js?v=1785048458"></script> <script src="/static/js/common.js?v=1785048685"></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="/static/vendor/js/chart-4.4.9.umd.min.js"></script> <script src="/static/vendor/js/chart-4.4.9.umd.min.js"></script>
<script src="/static/js/conditions.js?v=1785048458"></script> <script src="/static/js/conditions.js?v=1785048685"></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
@@ -108,8 +108,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="/static/js/spotsbandsandmap.js?v=1785048458"></script> <script src="/static/js/spotsbandsandmap.js?v=1785048685"></script>
<script src="/static/js/map.js?v=1785048458"></script> <script src="/static/js/map.js?v=1785048685"></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="/static/js/spotsbandsandmap.js?v=1785048458"></script> <script src="/static/js/spotsbandsandmap.js?v=1785048685"></script>
<script src="/static/js/spots.js?v=1785048458"></script> <script src="/static/js/spots.js?v=1785048685"></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="/static/js/status.js?v=1785048458"></script> <script src="/static/js/status.js?v=1785048685"></script>
<script> <script>
$(document).ready(function () { $(document).ready(function () {
$("#nav-link-status").addClass("active"); $("#nav-link-status").addClass("active");