Specialized Event Classes: ErrorEvent, PseudonymEvent, SreEvent

Overview of specialized Event Classes with further data.

ErrorEvent

[1]:
from logprep.ng.event.error_event import ErrorEvent
from logprep.ng.event.log_event import LogEvent

log_event = LogEvent({"data": 1}, original=b"data: 1")

# Simulate log_event state to FAILED
print(log_event.state.next_state())
print(log_event.state.next_state())
print(log_event.state.next_state(success=False))

error_event = ErrorEvent(log_event=log_event, reason=TypeError("Field 'data' has to be a string!"))

print(error_event)
received
processing
failed
ErrorEvent(data={'@timestamp': '2025-07-28T06:33:20.184077+00:00', 'reason': "Field 'data' has to be a string!", 'original': b'data: 1', 'event': b"{'data': 1}"}, state=receiving)

SreEvent and PseudonymEvent don’t have any additional data; they only serve to distinguish between the event types.

[ ]:
from logprep.ng.event.sre_event import SreEvent

outputs = ({"output": "output1"}, {"output": "output2"})

sre_event = SreEvent(data={"data": 1}, outputs=outputs)

# Simulate log_event states
print(sre_event.state.next_state())  # RECEIVED
print(sre_event.state.next_state())  # PROCESSING
print(sre_event.state.next_state(success=True))  # successfully PROCESSED
print(sre_event.state.next_state()) # STORED_IN_OUTPUT
print(sre_event.state.next_state(success=True))  # successfully DELIVERED
print(sre_event.state.next_state()) # ACKED
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[2], line 3
      1 from logprep.ng.event.sre_event import SreEvent
----> 3 sre_event = SreEvent(data={"data": 1})
      5 # Simulate log_event states
      6 print(sre_event.state.next_state())  # RECEIVED

TypeError: ExtraDataEvent.__init__() missing 1 required keyword-only argument: 'outputs'