Skip to content

Commit a9d60cb

Browse files
committed
catch ingest errors in Logging handler
1 parent f86ed19 commit a9d60cb

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

src/axiom_py/logging.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,8 @@ def flush(self):
6464
return
6565

6666
local_buffer, self.buffer = self.buffer, []
67-
self.client.ingest_events(self.dataset, local_buffer)
67+
try:
68+
self.client.ingest_events(self.dataset, local_buffer)
69+
except Exception as e:
70+
print(f"Error ingesting logs: {e}")
71+
self.buffer = local_buffer

tests/test_logger.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,3 +58,26 @@ def test_log(self):
5858

5959
# Cleanup created dataset
6060
client.datasets.delete(dataset_name)
61+
62+
def test_handling_network_errors(self):
63+
client = Client(
64+
"xapt-",
65+
"NO_ORG_ID",
66+
"https://WRONG_URL.com",
67+
)
68+
# Create a dataset for that purpose
69+
dataset_name = get_random_name()
70+
71+
axiom_handler = AxiomHandler(client, dataset_name, interval=1.0)
72+
73+
logger = logging.getLogger()
74+
logger.addHandler(axiom_handler)
75+
76+
logger.warning("This is a log!")
77+
axiom_handler.flush()
78+
79+
# wait for the flush to finish
80+
time.sleep(1.5)
81+
82+
# ensure no exceptions were raised
83+
self.assertEqual(1, len(axiom_handler.buffer))

0 commit comments

Comments
 (0)