package gov.nist.core;
import java.util.Properties;
/**
* interface that loggers should implement so that the stack can log to various
* loggers impl such as log4j, commons logging, sl4j, ...
* @author jean.deruelle@gmail.com
*
*/
public interface StackLogger extends LogLevels {
/**
* log a stack trace. This helps to look at the stack frame.
*/
public void logStackTrace();
/**
* Log a stack trace if the current logging level exceeds
* given trace level.
* @param traceLevel
*/
public void logStackTrace(int traceLevel);
/**
* Get the line count in the log stream.
*
* @return
*/
public int getLineCount();
/**
* Log an exception.
*
* @param ex
*/
public void logException(Throwable ex);
/**
* Log a message into the log file.
*
* @param message
* message to log into the log file.
*/
public void logDebug(String message);
/**
* Log a message into the log file.
*
* @param message
* message to log into the log file.
*/
public void logTrace(String message);
/**
* Log an error message.
*
* @param message --
* error message to log.
*/
public void logFatalError(String message);
/**
* Log an error message.
*
* @param message --
* error message to log.
*
*/
public void logError(String message);
/**
* @return flag to indicate if logging is enabled.
*/
public boolean isLoggingEnabled();
/**
* Return true/false if loging is enabled at a given level.
*
* @param logLevel
*/
public boolean isLoggingEnabled(int logLevel);
/**
* Log an error message.
*
* @param message
* @param ex
*/
public void logError(String message, Exception ex);
/**
* Log a warning mesasge.
*
* @param string
*/
public void logWarning(String string);
/**
* Log an info message.
*
* @param string
*/
public void logInfo(String string);
/**
* Disable logging altogether.
*
*/
public void disableLogging();
/**
* Enable logging (globally).
*/
public void enableLogging();
/**
* Set the build time stamp. This is logged into the logging stream.
*/
public void setBuildTimeStamp(String buildTimeStamp);
/**
* Stack creation properties.
* @param stackProperties
*/
public void setStackProperties(Properties stackProperties);
/**
* The category for the logger.
* @return
*/
public String getLoggerName();
}