package com.sleepycat.je.dbi;
public class EnvironmentImpl {
private Logger envLogger;
/**
* Initialize the debugging logging system. Note that publishing to the
* database log is not permitted until we've initialized the file manager in
* recovery. We can't log safely before that.
*/
private Logger initLogger( File envHome) throws DatabaseException {
return new EnvironmentImpl_initLogger(this,envHome).execute();
}
/**
* Close down the logger.
*/
public void closeLogger(){
Handler[] handlers=envLogger.getHandlers();
for (int i=0; i < handlers.length; i++) {
handlers[i].close();
}
}
/**
* @return environment Logger, for use in debugging output.
*/
public Logger getLogger(){
return envLogger;
}
protected void hook336( File envHome) throws DatabaseException {
envLogger=initLogger(envHome);
original(envHome);
}
protected void hook337() throws DatabaseException {
closeLogger();
original();
}
@MethodObject static class EnvironmentImpl_initLogger {
EnvironmentImpl_initLogger( EnvironmentImpl _this, File envHome){
this._this=_this;
this.envHome=envHome;
}
Logger execute() throws DatabaseException {
logger=Logger.getAnonymousLogger();
logger.setUseParentHandlers(false);
level=Tracer.parseLevel(_this,EnvironmentParams.JE_LOGGING_LEVEL);
logger.setLevel(level);
return logger;
}
protected EnvironmentImpl _this;
protected File envHome;
protected Logger logger;
protected Level level;
protected Handler consoleHandler;
protected Handler fileHandler;
protected int limit;
protected int count;
protected String logFilePattern;
}
}