class

Sepia::EventLoggerBackend

Inherits Reference < Object

Abstract base class for event logging backends.

This class defines the interface that all event logging implementations must follow. Different backends can store events in different ways while providing the same API to the storage system.

Implementations

  • PerFileEventLogger - One file per object (current default)
  • GlobalEventLogger - Single global log file (future)
  • DatabaseEventLogger - Database storage (future)
  • CompositeEventLogger - Multiple backends simultaneously (future)

Instance methods

append_event(object : Serializable | Container, event_type : LogEventType, generation : Int32, metadata)

Append an event to the log.

Parameters

  • object : The Sepia object the event relates to
  • event_type : Type of event (Created, Updated, Deleted)
  • generation : Object generation number
  • metadata : Optional metadata for the event
Source
read_events(object_class : Class, id : String) : Array(LogEvent)

Read all events for a specific object.

Parameters

  • object_class : The class of the object
  • id : The object's unique identifier

Returns

Array of events for the specified object, ordered by timestamp

Source
should_log?(klass : Class) : Bool

Check if this backend should log events for the given class.

Default implementation checks if the class has sepia_log_events enabled. Subclasses can override for more sophisticated filtering.

Parameters

  • klass : The class to check

Returns

True if events should be logged for this class

Source