我使用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仍然出现。
任何帮助都是非常感谢的。
发布于 2009-06-17 01:34:11
您可以通过创建以下类来摆脱derby.log文件
public class DerbyUtil {
public static final OutputStream DEV_NULL = new OutputStream() {
public void write(int b) {}
};
}以及设置JVM系统属性derby.stream.error.field,例如,使用以下JVM命令行参数:
-Dderby.stream.error.field=DerbyUtil.DEV_NULLCredit to whom it is due.
发布于 2009-12-20 00:16:27
Derby允许您使用Java系统属性derby.stream.error.file指定错误日志消息要写入的文件的名称。默认值为'derby.log‘。
为了在Maven surefire测试阶段去除derby.log,我只需在插件配置中添加属性定义,如下所示:
<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>发布于 2012-08-02 22:09:49
在derby.properties文件中包含以下内容:
derby.stream.error.file=/dev/null(或
derby.stream.error.file=\\Device\\Null在Windows上)
https://stackoverflow.com/questions/1004327
复制相似问题