/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.eventlog.internal.impl;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import de.rcenvironment.core.eventlog.internal.EventLogService;
import de.rcenvironment.core.utils.common.StringUtils;
/**
* A simple {@link EventLogService} implementation that forwards all events to the provided
* Apache-Commons-Logging (ACL) implementation. Intended as a runtime placeholder until a more
* sophisticated implementation is injected by OSGi-DS, and for low-dependency use in unit tests.
*
* @author Robert Mischke
*
*/
public class EventLogServiceForwardToACLImpl implements EventLogService {
private static final Log LOGGER = LogFactory.getLog(EventLogServiceForwardToACLImpl.class);
@Override
public void dispatchMessage(EventLogMessage event) {
String formattedMessage = getFormattedMessage(event);
// forward to ACL
// TODO q&d output; could be improved by using log levels
LOGGER.info(StringUtils.format("%s/%s/%s: %s", event.getContext(), event.getMessageType(), event.getSourceId(), formattedMessage));
}
private String getFormattedMessage(EventLogMessage event) {
// determine message pattern
String messagePattern;
if (event.isLocalized()) {
// TODO implement message localization
messagePattern = event.getMessage();
} else {
messagePattern = event.getMessage();
}
// insert parameters into pattern
return StringUtils.format(messagePattern, event.getParameters());
}
}