代码之家  ›  专栏  ›  技术社区  ›  bmargulies

webapp中的derby.log(etc)控件

  •  0
  • bmargulies  · 技术社区  · 15 年前

    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 回复  |  直到 15 年前
        1
  •  0
  •   Bryan Pendleton    15 年前

    有多种方法可以设置Derby属性。以下是一些文档: http://db.apache.org/derby/docs/10.5/devguide/cdevsetprop24222.html

    您正在尝试设置哪些属性,设置这些属性的哪一方面会让您感到痛苦?