package com.sleepycat.je.utilint;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.nio.ByteBuffer;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.logging.Level;
import com.sleepycat.je.DatabaseException;
import com.sleepycat.je.config.ConfigParam;
import com.sleepycat.je.dbi.EnvironmentImpl;
import com.sleepycat.je.log.LogEntryType;
import com.sleepycat.je.log.LogReadable;
import com.sleepycat.je.log.LogUtils;
import com.sleepycat.je.log.LoggableObject;
import de.ovgu.cide.jakutil.*;
/**
* The Tracer generates debug messages that are sent to the java.util.Logging
* facility. There are three log handlers set up for logging -- the database
* log itself, an output file, and stdout (the "console"). By default, only
* the database file is enabled.
*/
public class Tracer {
public static final String INFO_FILES="je.info";
private Timestamp time;
private String msg;
/**
* Create a new debug record.
*/
public Tracer( String msg){
this.time=getCurrentTimestamp();
this.msg=msg;
}
/**
* Logger method for recording a general message.
*/
public static void trace( Level logLevel, EnvironmentImpl envImpl, String msg){
}
/**
* Parse a logging level config parameter, and return a more explanatory
* error message if it doesn't parse.
*/
public static Level parseLevel( EnvironmentImpl envImpl, ConfigParam configParam) throws DatabaseException {
Level level=null;
try {
String levelVal=envImpl.getConfigManager().get(configParam);
level=Level.parse(levelVal);
}
catch ( IllegalArgumentException e) {
throw new DatabaseException("Problem parsing parameter " + configParam.getName() + ": "+ e.getMessage(),e);
}
return level;
}
/**
* @return a timestamp for "now"
*/
private Timestamp getCurrentTimestamp(){
Calendar cal=Calendar.getInstance();
return new Timestamp(cal.getTime().getTime());
}
/**
* @return the stacktrace for an exception
*/
public static String getStackTrace( Throwable t){
StringWriter s=new StringWriter();
t.printStackTrace(new PrintWriter(s));
String stackTrace=s.toString();
stackTrace=stackTrace.replaceAll("<","<");
stackTrace=stackTrace.replaceAll(">",">");
return stackTrace;
}
}