tree: e1e9d54bf55422cbf044ca698ac205ce266247b5 [path history] [tgz]
  1. src/
  2. build.gradle
  3. README.MD
modules/eventlog/README.MD

Ignite Event Log

Event log is a feature that allows to log events that happen in the system into some destination.

There are several things that can be configured in this module:

  • Sink: The destination where the events will be logged. The sink can be a file, a database, a message queue, etc. Now only logger sink is supported.
  • Channels: Group different types of events that can be written into several sinks. For example, there can be a channel for EVENT_TYPE_1 and EVENT_TYPE_2. All other events won't be logged into any sink that is piped to this channel.
  • Event Types: The type of the event. Each module can define and fire its own event types.

For users

There is a finite number of event types that is defined in the system. You can not create new event types.

To start logging events and then read them, you need to configure the event log.

Configuration

eventlog:
  channels.authenticationChannel: {
      enabled: true,
      types: [USER_AUTHENTICATED] 
    }
  sinks.authenticationLoggerSink: {
      type: "log",
      criteria: "authEventLog",
      channel: "authenticationChannel"
    }

This configuration defines a channel called authenticationChannel that will log events of type USER_AUTHENTICATED into the sink authenticationLoggerSink. The sink has a type log that means that the events will be logged into the logger that is defined for the system. The criteria is a name of the logger that will be used to log the events. You can configure the logger with a name authEventLog in the logger configuration.

For developers

To log an event, you need to use the EventLog interface. This is the only way to do it. If you want to define your own event type, you need to register it in the EventTypeRegistry before the first creation of the event of this type.