public IValue getLog(IEvaluatorContext e) { if (logger == null) { throw RuntimeExceptionFactory.permissionDenied( vf.string("getLog called before startLog"), e.getCurrentAST(), null); } IString result = vf.string(logger.getBuffer().toString()); Evaluator eval = (Evaluator) e; eval.revertToDefaultWriters(); logger = null; return result; }