如何在Spring Boot中启用Logback-access?

时间:2018-10-29 13:33:36

标签: spring spring-boot logging

我正在尝试在Spring Boot应用程序中启用logback-access来记录命中该应用程序的所有http请求。

我尝试使用https://github.com/akihyro/logback-access-spring-boot-starter

来实现

添加示例中显示的XML文件不会执行任何操作,是否还需要添加其他内容来启用?

任何其他获得相同结果的建议都将受到欢迎:)

2 个答案:

答案 0 :(得分:0)

我非常确定您正在谈论SpringBoot的回退记录器。如果我没看错,这就是您可以这样做的方式

a。在您的POM中添加依赖项

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
</dependency>

b。现在,您可以通过多种方式要求spring配置回发。例如

在application.properties文件中

在logback.xml文件中

使用logback.xml文件的优点是,对于不同的构建配置文件,您可能具有不同的xml文件。但是在application.properties中,您没有这种自由。

对我的一个项目中的application.properties文件中的条目进行采样

logging.level.org.springframework.web = INFO
logging.level.com.company.app = DEBUG
#logging.level.org.hibernate=ERROR
logging.file=logs/spring-boot-logging.log
## Hibernate Logging
logging.level.org.hibernate.SQL = DEBUG

如果您使用的是XML,则配置可能看起来像这样

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</Pattern>
        </layout>
    </appender>

    <logger name="org.springframework" level="error" additivity="false">
        <appender-ref ref="STDOUT" />
    </logger>
    <logger name="org.springframework" level="info" additivity="false">
        <appender-ref ref="STDOUT" />
    </logger>
    <logger name="org.springframework" level="warn" additivity="false">
        <appender-ref ref="STDOUT" />
    </logger>
    <logger name="com.memorynotfound" level="debug" additivity="false">
        <appender-ref ref="STDOUT" />
    </logger>
    <configuration scan="true"/>
</configuration>

我建议您进行一些Google搜寻,以更好地了解自己的情况。

祝你好运!

答案 1 :(得分:0)

您仍然需要将bean连接到您的应用程序...就像下面的代码片段将过滤器连接到您的应用程序一样:


@SpringBootApplication
public class MyApp {

    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }

    // ... your other methods here

    @Bean
    public CommonsRequestLoggingFilter logFilter() {
        CommonsRequestLoggingFilter filter = new CommonsRequestLoggingFilter();
        filter.setIncludeQueryString(true);

        return filter;
    }
}