package rocks.inspectit.agent.java.sdk.opentracing.internal;
/**
* Interface that provides the logging ability to the tracer. This interface is defined in order to
* not introduce any dependencies.
* <p>
* This SDK only provides the
* {@link rocks.inspectit.agent.java.sdk.opentracing.internal.noop.NoopLogger} as the
* implementation. However, if the inspectIT agent is active on the target application, the "real"
* SLF4J logger will be used which does the logging. In this case the initialization of the logger
* and the tracer is done by inspectIT and can be obtained in
* {@link rocks.inspectit.agent.java.sdk.opentracing.TracerProvider}.
*
* @author Ivan Senic
*
*/
public interface TracerLogger {
/**
* Defines if the info level is enabled.
*
* @return If the info level is enabled.
*/
boolean isInfoEnabled();
/**
* Log message in info level.
*
* @param message
* Message to log.
*/
void info(String message);
/**
* Defines if the debug level is enabled.
*
* @return If the debug level is enabled.
*/
boolean isDebugEnabled();
/**
* Log message in debug level.
*
* @param message
* Message to log.
*/
void debug(String message);
/**
* Defines if the warn level is enabled.
*
* @return If the warn level is enabled.
*/
boolean isWarnEnabled();
/**
* Log message in warn level.
*
* @param message
* Message to log.
*/
void warn(String message);
/**
* Log message in warn level with throwable.
*
* @param message
* Message to log.
* @param t
* Throwable to log.
*/
void warn(String message, Throwable t);
/**
* Defines if the error level is enabled.
*
* @return If the error level is enabled.
*/
boolean isErrorEnabled();
/**
* Log message in error level.
*
* @param message
* Message to log.
*/
void error(String message);
/**
* Log message in error level with throwable.
*
* @param message
* Message to log.
* @param t
* Throwable to log.
*/
void error(String message, Throwable t);
}