1600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpackage gov.nist.core; 2600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 3600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport java.util.Properties; 4600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 5600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 6600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang/** 7600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * interface that loggers should implement so that the stack can log to various 8600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * loggers impl such as log4j, commons logging, sl4j, ... 9600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @author jean.deruelle@gmail.com 10600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 11600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 12600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpublic interface StackLogger extends LogLevels { 13600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 14600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 15600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * log a stack trace. This helps to look at the stack frame. 16600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 17600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void logStackTrace(); 18600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 19600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 20600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Log a stack trace if the current logging level exceeds 21600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * given trace level. 22600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param traceLevel 23600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 24600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void logStackTrace(int traceLevel); 25600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 26600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 27600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Get the line count in the log stream. 28600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 29600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return 30600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 31600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public int getLineCount(); 32600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 33600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 34600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Log an exception. 35600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 36600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param ex 37600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 38600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void logException(Throwable ex); 39600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 40600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Log a message into the log file. 41600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 42600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param message 43600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * message to log into the log file. 44600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 45600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void logDebug(String message); 46600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 47600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Log a message into the log file. 48600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 49600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param message 50600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * message to log into the log file. 51600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 52600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void logTrace(String message); 53600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 54600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Log an error message. 55600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 56600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param message -- 57600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * error message to log. 58600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 59600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void logFatalError(String message); 60600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 61600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Log an error message. 62600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 63600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param message -- 64600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * error message to log. 65600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 66600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 67600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void logError(String message); 68600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 69600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return flag to indicate if logging is enabled. 70600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 71600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public boolean isLoggingEnabled(); 72600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 73600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Return true/false if loging is enabled at a given level. 74600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 75600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param logLevel 76600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 77600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public boolean isLoggingEnabled(int logLevel); 78600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 79600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Log an error message. 80600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 81600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param message 82600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param ex 83600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 84600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void logError(String message, Exception ex); 85600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 86600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Log a warning mesasge. 87600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 88600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param string 89600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 90600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void logWarning(String string); 91600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 92600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Log an info message. 93600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 94600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param string 95600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 96600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void logInfo(String string); 97600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 98600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 99600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 100600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Disable logging altogether. 101600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * 102600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 103600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void disableLogging(); 104600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 105600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 106600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Enable logging (globally). 107600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 108600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void enableLogging(); 109600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 110600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 111600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Set the build time stamp. This is logged into the logging stream. 112600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 113600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setBuildTimeStamp(String buildTimeStamp); 114600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 115600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 116600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Stack creation properties. 117600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param stackProperties 118600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 119600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 120600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public void setStackProperties(Properties stackProperties); 121600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 122600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 123600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * The category for the logger. 124600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return 125600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 126600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public String getLoggerName(); 127600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 128600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 129600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 130600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang} 131