@@ -53,6 +53,7 @@ def __init__(self,
53
53
verbose = False ,
54
54
buffer_overflow_handler = None ,
55
55
nanosecond_precision = False ,
56
+ forward_packet_error = True ,
56
57
msgpack_kwargs = None ,
57
58
** kwargs ):
58
59
"""
@@ -66,6 +67,7 @@ def __init__(self,
66
67
self .verbose = verbose
67
68
self .buffer_overflow_handler = buffer_overflow_handler
68
69
self .nanosecond_precision = nanosecond_precision
70
+ self .forward_packet_error = forward_packet_error
69
71
self .msgpack_kwargs = {} if msgpack_kwargs is None else msgpack_kwargs
70
72
71
73
self .socket = None
@@ -82,11 +84,11 @@ def emit(self, label, data):
82
84
return self .emit_with_time (label , cur_time , data )
83
85
84
86
def emit_with_time (self , label , timestamp , data ):
85
- if self .nanosecond_precision and isinstance (timestamp , float ):
86
- timestamp = EventTime (timestamp )
87
87
try :
88
88
bytes_ = self ._make_packet (label , timestamp , data )
89
89
except Exception as e :
90
+ if not self .forward_packet_error :
91
+ raise
90
92
self .last_error = e
91
93
bytes_ = self ._make_packet (label , timestamp ,
92
94
{"level" : "CRITICAL" ,
@@ -125,6 +127,8 @@ def _make_packet(self, label, timestamp, data):
125
127
tag = '.' .join ((self .tag , label )) if self .tag else label
126
128
else :
127
129
tag = self .tag
130
+ if self .nanosecond_precision and isinstance (timestamp , float ):
131
+ timestamp = EventTime (timestamp )
128
132
packet = (tag , timestamp , data )
129
133
if self .verbose :
130
134
print (packet )
0 commit comments