Java spring引导-关闭控制台日志记录

Java spring引导-关闭控制台日志记录,java,spring,spring-boot,logback,slf4j,Java,Spring,Spring Boot,Logback,Slf4j,要将spring boot 1.3.5应用程序配置为仅向文件发送日志输出,请关闭控制台 根据文档,这看起来很简单: -部分 §72.1.1为仅文件输出配置回写 但我就是不能让它工作——不管我怎么做,它仍然会记录到文件和控制台。 谷歌搜索了几个小时,但找不到任何实际有效的建议 有什么线索吗 编辑:请不要将此标记为重复-我已经全部阅读了-并且此处没有任何建议的解决方案有效。只需在类路径根目录中添加一个logback.xml,并包含以下内容: <?xml version="1.0" encodi

要将spring boot 1.3.5应用程序配置为仅向文件发送日志输出,请关闭控制台

根据文档,这看起来很简单: -部分 §72.1.1为仅文件输出配置回写

但我就是不能让它工作——不管我怎么做,它仍然会记录到文件和控制台。 谷歌搜索了几个小时,但找不到任何实际有效的建议

有什么线索吗

编辑:请不要将此标记为重复-我已经全部阅读了-并且此处没有任何建议的解决方案有效。

只需在类路径根目录中添加一个logback.xml,并包含以下内容:

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <appender name="FILE_APPENDER" class="ch.qos.logback.core.FileAppender">
        <file>myApp.log</file>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="FILE_APPENDER" />
    </root>
</configuration>
这会将所有日志写入myApp.log文件。签出以获得更详细的讨论。

只需在类路径根目录中添加一个logback.xml,其中包含以下内容:

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <appender name="FILE_APPENDER" class="ch.qos.logback.core.FileAppender">
        <file>myApp.log</file>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="FILE_APPENDER" />
    </root>
</configuration>

这会将所有日志写入myApp.log文件。签出以获得更详细的讨论。

设置后,我遵循以下步骤:

使用此pom文件创建演示Spring引导web项目:

4.0.0 com.example ,日志启动程序不是必需的,因为它已包含在web启动程序中。让我们创建一个带有一些根本不需要的日志记录的@服务:

@Service
public class MyService {

    private Logger logger = LoggerFactory.getLogger(MyService.class);

    public MyService() {
        logger.info("Created!");
    }

}
然后,我们创建一个logback-spring.xml文件,只配置文件appender,而不是如文档所示为控制台配置的文件appender。将其保存在src/main/resources文件夹中,Maven将其放在类路径的根目录下:


当项目启动时,初始日志会显示在控制台中,但当它被重定向到target/spring.log文件时,不会显示更多的输出。

设置好后,我遵循以下步骤:

使用此pom文件创建演示Spring引导web项目:

4.0.0 com.example ,日志启动程序不是必需的,因为它已包含在web启动程序中。让我们创建一个带有一些根本不需要的日志记录的@服务:

@Service
public class MyService {

    private Logger logger = LoggerFactory.getLogger(MyService.class);

    public MyService() {
        logger.info("Created!");
    }

}
然后,我们创建一个logback-spring.xml文件,只配置文件appender,而不是如文档所示为控制台配置的文件appender。将其保存在src/main/resources文件夹中,Maven将其放在类路径的根目录下:


当项目启动时,初始日志会显示在控制台中,但当它被重定向到target/spring.log文件时,不会显示更多的输出。

最后,我发现了错误。。。
这是一个多模块构建,在一个子模块中,还有一个logback.xml,它显然优先于我正在处理的logback-spring.xml。当我将另一个文件从构建中排除时,它最终按预期工作。呸….

终于——我找到了漏洞。。。
这是一个多模块构建,在一个子模块中,还有一个logback.xml,它显然优先于我正在处理的logback-spring.xml。当我将另一个文件从构建中排除时,它最终按预期工作。呸….

设置logging.pattern.console=value在application.properties中留空,对我有效。

设置logging.pattern.console=value在application.properties中留空,对我有效。

如我所写,我确实读过该死的文档,但它就是不起作用!:-无论如何,我意识到我必须在这上面设置一个演示/poc,并将推到github,如果我能演示的话——我会回来的……正如我所写的,我确实读过该死的文档,但它就是不起作用!:-无论如何,我意识到我必须在这上面设置一个demo/poc,并将推到github,如果我能演示的话-我会回来的…最好知道POM是如何配置的。最好知道POM是如何配置的。@prashanth-g这对控制台中的每个日志行都是错误的@prashanth-g这只是为控制台中的每个日志行写入false!