If your Nucleus component cannot extend GenericService—for example, because it already extends some other class—you can use the LoggingPropertied interface.

The LoggingPropertied interface consists of a single method:

public ApplicationLoggingSender getLogging();

This method returns the application logging instance your component uses for its logging. Using this interface means that you do not have to implement the entire ApplicationLogging interface on your subclass, or use another component’s ApplicationLogging instance, which means that your own component’s name does not appear in the log files.

A LoggingPropertied component typically implements LoggingPropertied and ServiceListener (to get startService calls so that the component name can be set on the logging instance), and includes the following code:

ApplicationLoggingImpl mLogging = new ApplicationLoggingImpl(

public ApplicationLoggingSender getLogging() {
  return mLogging;

public void startService (ServiceEvent pEvent) throws ServiceException {

public void stopService() {

Then, when your component needs to log, it can use code such as the following:

if (getLogging().isLoggingDebug()) {

Nucleus is now aware of the LoggingPropertied interface, and displays properties for the ApplicationLogging instance. The administrative UI also lets you access the ApplicationLogging properties, including changing them at runtime.

Nucleus understands simple dot notation for nested property names, with some limitations. So the Nucleus properties file for your component implementing ApplicationLogging can contain the following to turn on logging debug when your application starts up:


Note: The logging property object must exist before the startService, because all property settings are applied before startService is invoked.