}   if (eventLog instanceof Logger) { ((Logger) eventLog).setLogLevel(debug ? Logger.DEBUG : Logger.INFO);
    private synchronized void updateProperties() {        // if so property file has been updated, re-read props.        if (props.lastModified() > lastPropertyRead) {            // force property update            props.update();            // character encoding to be used for responses            charset = props.getProperty("charset", "ISO-8859-1");            // debug flag            debug = "true".equalsIgnoreCase(props.getProperty("debug"));            // if rhino debugger is enabled use higher (10 min) default request timeout            String defaultReqTimeout =                    "true".equalsIgnoreCase(props.getProperty("rhino.debug")) ?                        "600" : "60";            String reqTimeout = props.getProperty("requesttimeout", defaultReqTimeout);            try {                requestTimeout = Long.parseLong(reqTimeout) * 1000L;            } catch (Exception ignore) {                // go with default value                requestTimeout = 60000L;            }            // set base URI            String base = props.getProperty("baseuri");            if (base != null) {                setBaseURI(base);            } else if (baseURI == null) {                baseURI = "/";            }            hrefRootPrototype = props.getProperty("hrefrootprototype");            // update the XML-RPC access list, containting prototype.method            // entries of functions that may be called via XML-RPC            String xmlrpcAccessProp = props.getProperty("xmlrpcaccess");            HashSet xra = new HashSet();            if (xmlrpcAccessProp != null) {                StringTokenizer st = new StringTokenizer(xmlrpcAccessProp, ",; ");                while (st.hasMoreTokens()) {                    String token = st.nextToken().trim();                    xra.add(token.toLowerCase());                }            }            xmlrpcAccess = xra;            // if node manager exists, update it            if (nmgr != null) {                nmgr.updateProperties(props);            }            // update extensions            if (Server.getServer() != null) {                Vector extensions = Server.getServer().getExtensions();                for (int i = 0; i < extensions.size(); i++) {                    HelmaExtension ext = (HelmaExtension) extensions.get(i);                    try {                        ext.applicationUpdated(this);                    } catch (ConfigurationException e) {                        logEvent("Error updating extension "+ext+": "+e);                    }                }            }            logDir = props.getProperty("logdir", "log");            if (System.getProperty("helma.logdir") == null) {                // set up helma.logdir system property in case we're using it                File dir = new File(logDir);                System.setProperty("helma.logdir", dir.getAbsolutePath());            }            // set prop read timestamp            lastPropertyRead = props.lastModified();        }    }