webapp中的derby.log(etc)控件

时间:2009-11-13 14:31:46

标签: web-applications derby

Derby有一系列由系统属性控制的配置选项。在webapp中安排系统属性设置非常痛苦。有人提出解决方案吗?

此外,我无法让他们在网络应用中工作。

这是servlet上下文侦听器的代码。仍然在容器的cwd中创建derby.log,而不是调用我的日志记录过程。

/**
 * Listener to try to get Derby to behave better.
 */
public class ContextListener implements ServletContextListener {

    private static final String TEMP_DIR_ATTRIBUTE = "javax.servlet.context.tempdir";
    private static ServletContext context;
    private static Writer logWriter;

    private class LogWriter extends Writer {

        @Override
        public void close() throws IOException {
        }

        @Override
        public void flush() throws IOException {
        }

        @Override
        public void write(char[] cbuf, int off, int len) throws IOException {
            context.log(new String(cbuf, off, len));
        }

    }

    /** {@inheritDoc}*/
    public void contextDestroyed(ServletContextEvent sce) {
    }

    public static Writer getLogSteam() {
        return logWriter;
    }

    /** {@inheritDoc}*/
    public void contextInitialized(ServletContextEvent sce) {
        logWriter = new LogWriter();
        File tempDirFile = (File)sce.getServletContext().getAttribute(TEMP_DIR_ATTRIBUTE);
        context = sce.getServletContext();
        System.setProperty("derby.system.home", tempDirFile.getAbsolutePath());
        System.setProperty("derby.stream.error.method", "com.basistech.vws.ContextListener.getLogStream");
    }

}

1 个答案:

答案 0 :(得分:0)

有多种方法可以设置Derby属性。这里有一些文档:http://db.apache.org/derby/docs/10.5/devguide/cdevsetprop24222.html你不会说你觉得哪一部分是痛苦的,所以很难知道你正在寻找什么样的解决方案。

您要设置哪些属性,设置它们的哪个方面令人痛苦?