Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在控制台中抑制Flyway迁移输出?_Java_Console Application_Flyway - Fatal编程技术网

Java 如何在控制台中抑制Flyway迁移输出?

Java 如何在控制台中抑制Flyway迁移输出?,java,console-application,flyway,Java,Console Application,Flyway,作为一个学校项目,我们正在开发一个简单的Java控制台应用程序。起初,我决定使用Flyway进行数据库迁移,因为它看起来是最简单的解决方案。我对迁移本身很满意,但希望抑制Flyway的控制台日志记录 在谷歌搜索了相当广泛的内容之后,我想不出如何在不改变标准输出的情况下摆脱日志记录。我应该这样做,还是有更好的方法来清理我们的产出?对我来说,这听起来像是一个问题,应该有一个简单的开关在某个地方,我只是找不到 谢谢大家! 编辑:这里是正在讨论的项目:(UI是芬兰语的,但代码是英语的)Flyway设计

作为一个学校项目,我们正在开发一个简单的Java控制台应用程序。起初,我决定使用Flyway进行数据库迁移,因为它看起来是最简单的解决方案。我对迁移本身很满意,但希望抑制Flyway的控制台日志记录

在谷歌搜索了相当广泛的内容之后,我想不出如何在不改变标准输出的情况下摆脱日志记录。我应该这样做,还是有更好的方法来清理我们的产出?对我来说,这听起来像是一个问题,应该有一个简单的开关在某个地方,我只是找不到

谢谢大家!


编辑:这里是正在讨论的项目:(UI是芬兰语的,但代码是英语的)

Flyway设计用于在类路径上查找兼容的日志库。如果找不到,它将返回默认的日志记录行为,这就是您在这里看到的

这并没有很好的文档记录,因为Flyway通常从客户端使用,比如CLI、Maven等。客户端有自己的日志处理机制。然而,您采取的是非常手动的方法

让它现在起作用 使用:

  • 下载SLF4J jar文件
  • 下载SLF4J的NOP绑定
  • 将这两个JAR放在计算机上的文件夹中(例如
    C:\jars
  • 在执行应用程序时,将这些JAR添加到类路径中
    • e、 g:
      java-cpc:\jars\*-jar-ohtu ts all.jar
Flyway将拾取SLF4J并将其用于记录。NOP绑定是SLF4J的一个特殊实现,它抑制所有日志

更好的解决方案
,您将Flyway Core作为依赖项拉入。这样可以避免这种疯狂的手动设置。

使用log4j将日志存储在文件中

要导入的类

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Maven依赖

        <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.30</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.30</version>
    </dependency>
文件log4j.properties

log4j.rootLogger=DEBUG, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/file_name_to_logs.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{dd-MM-yyyy HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.file.MaxFileSize=5MB

可能会更改日志级别的帮助吗?@hotzst,但我还没有在Flyway的JAVA API文档中找到如何配置它。据我所知,至少在其他版本(如CLI)中是可能的。
log4j.rootLogger=DEBUG, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/file_name_to_logs.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{dd-MM-yyyy HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.file.MaxFileSize=5MB