package rocks.inspectit.agent.java.sensor.method.logging;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import rocks.inspectit.agent.java.core.IPlatformManager;
import rocks.inspectit.agent.java.hooking.IHook;
import rocks.inspectit.agent.java.sensor.method.AbstractMethodSensor;
import rocks.inspectit.agent.java.sensor.method.IMethodSensor;
/**
* Logging sensor to capture log4j loggings.
*
* @author Stefan Siegl
*/
public class Log4JLoggingSensor extends AbstractMethodSensor implements IMethodSensor {
/** Configuration key for the minimum level that should be captured. */
public static final String CONFIG_KEY_MINIMUM_LEVEL = "minlevel";
/**
* Used for creating and resolving ids necessary to communicate with the server.
*/
@Autowired
private IPlatformManager platformManager;
/** hook instance. */
private Log4JLoggingHook hook;
/**
* {@inheritDoc}
*/
@Override
protected void initHook(Map<String, Object> parameters) {
// read the desired minimum level and pass it to the hook
String minimumLevelToCapture = (String) parameters.get(CONFIG_KEY_MINIMUM_LEVEL);
hook = new Log4JLoggingHook(platformManager, minimumLevelToCapture);
}
/**
* {@inheritDoc}
*/
@Override
public IHook getHook() {
return hook;
}
}