/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.eventlog;
import de.rcenvironment.core.eventlog.internal.EventLogContext;
import de.rcenvironment.core.eventlog.internal.impl.EventLoggerImpl;
/**
* Static factory for {@link EventLogger} instances.
*
* @author Robert Mischke
*/
public abstract class EventLoggerFactory {
/**
* Private constructor; this class is not meant to be instantiated.
*/
private EventLoggerFactory() {}
/**
* Returns a {@link EventLogger} for global, platform-wide events.
*
* This method may or may not return the same instance when called again with the same
* arguments.
*
* @param clazz the class from which this logger is used
* @return the logger instance
*/
public static EventLogger getPlatformLogger(Class<?> clazz) {
return new EventLoggerImpl(EventLogContext.PLATFORM, clazz, null, null);
}
/**
* Returns a {@link WorkflowEventLogger} for events associated with a workflow.
*
* This method may or may not return the same instance when called again with the same
* arguments.
*
* @param clazz the class from which this logger is used
* @param workflowId the id of the relevant workflow
* @return the logger instance
*/
public static WorkflowEventLogger getWorkflowLogger(Class<?> clazz, String workflowId) {
return new EventLoggerImpl(EventLogContext.WORKFLOW, clazz, workflowId, null);
}
/**
* Returns a {@link ComponentEventLogger} for events associated with a workflow component.
*
* This method may or may not return the same instance when called again with the same
* arguments.
*
* @param clazz the class from which this logger is used
* @param workflowId the id of the relevant workflow
* @param componentId the id of the relevant workflow component
* @return the logger instance
*/
public static ComponentEventLogger getComponentLogger(Class<?> clazz, String workflowId, String componentId) {
return new EventLoggerImpl(EventLogContext.COMPONENT, clazz, workflowId, componentId);
}
}