Applications deployed on Fabric3 can take advantage of an injection-based monitoring and logging framework. The monitoring framework offers a number of benefits:

Using Monitoring

To use the monitoring framework in application code, do the following: defining a monitor interface and injecting the monitor in a component.

Define a monitoring interface.

The monitoring interface is used for sending monitoring events. The interface defines expected events and monitoring levels using methods on the interface:

import org.fabric3.api.annotation.monitor.Severe;
import org.fabric3.api.annotation.monitor.Debug;

public inteface ComponentMonitor
   
   @Severe  
   void error(String message, Throwable t);

   @Debug ("Received request {0}")
   void receivedRequest(String id);

}

The above interface defines an error event and a debug event. The debug event also specifies a formatted message that will be logged if the event is received. The following monitoring levels are supported:

By default, info and above are enabled at runtime.

Injecting the Monitor

A monitor is injected in a component using the org.fabric3.api.annotation.monitor.Monitor annotation.