Implementation

This is an SPI, and the framework provides several implementations.

The framework allows multiple implementations of this service to be registered; all will be called.

Applib (Log4j2)

The applib provides a simple implementation, ExecutionLogger, that just logs events as they are received.

It can be configured using:

log4j2-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Properties> ... </Properties>
  <Appenders> ... </Appenders>
  <Loggers>
    ...
    <logger
      name="org.apache.causeway.applib.services.publishing.log.ExecutionLogger"
      level="debug"/>
    ...
  </Loggers>
</Configuration>

See the log4j2-spring.xml file in simpleapp for the omitted detail.

Execution Log

The Execution Log module also provides an implementation, ExecutionSubscriberForExecutionLog. This implementation persists an instance of the ExecutionLogEntry entity for each event.

Execution Outbox

The Execution Outbox module also provides an implementation, ExecutionSubscriberForExecutionOutbox. This implementation persists an instance of the ExecutionOutboxEntry entity for each event.