首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >摆脱derby.log

摆脱derby.log
EN

Stack Overflow用户
提问于 2009-06-16 22:54:36
回答 8查看 27.7K关注 0票数 28

我使用Apache Derby嵌入式数据库在Maven项目中进行单元测试。不幸的是,每当我运行测试时,我都会将derby.log文件放在项目的根目录中。数据库本身是在target目录(jdbc:derby:target/unittest-db;create=true)中创建的,所以这不是问题。在查阅了reference guide之后,我尝试在JDBC url (jdbc:derby:target/unittest-db;create=true;logDevice=/mylogs)上设置logDevice参数,但这似乎是为了不同的日志,因此derby.log仍然出现。

任何帮助都是非常感谢的。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-06-17 01:34:11

您可以通过创建以下类来摆脱derby.log文件

代码语言:javascript
复制
public class DerbyUtil {
    public static final OutputStream DEV_NULL = new OutputStream() {
        public void write(int b) {}
    };
}

以及设置JVM系统属性derby.stream.error.field,例如,使用以下JVM命令行参数:

代码语言:javascript
复制
-Dderby.stream.error.field=DerbyUtil.DEV_NULL

Credit to whom it is due.

票数 23
EN

Stack Overflow用户

发布于 2009-12-20 00:16:27

Derby允许您使用Java系统属性derby.stream.error.file指定错误日志消息要写入的文件的名称。默认值为'derby.log‘。

为了在Maven surefire测试阶段去除derby.log,我只需在插件配置中添加属性定义,如下所示:

代码语言:javascript
复制
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <systemProperties>
            <property>
                <name>derby.stream.error.file</name>
                <value>target/derby.log</value>
            </property>
        </systemProperties>
    </configuration>
</plugin>
票数 50
EN

Stack Overflow用户

发布于 2012-08-02 22:09:49

在derby.properties文件中包含以下内容:

代码语言:javascript
复制
derby.stream.error.file=/dev/null

(或

代码语言:javascript
复制
derby.stream.error.file=\\Device\\Null

在Windows上)

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1004327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档