相关疑难解决方法(0)

如何防止logback在每个日志开始时输出自己的状态?

这似乎是一个疏忽错误,但我似乎无法找到原因.使用logback/slf4j进行日志记录(最新版本为slf4j-api-1.6.1,logback core/classic 0.9.24).最简单的测试日志配置是:

<configuration>
 <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
  <layout class="ch.qos.logback.classic.PatternLayout">
   <!-- DONT USE THIS FORMATTER FOR LIVE LOGGING THE %L LINE NUMBER OUTPUTTER IS SLOW -->
   <pattern>%le %-1r [%c{1}:%L] %m%n</pattern>
  </layout>
 </appender>
 <root level="DEBUG">
  <appender-ref ref="stdout" />
 </root>
</configuration>
Run Code Online (Sandbox Code Playgroud)

每个日志设置都以logback的内部状态行开头:

11:21:27,825 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
11:21:27,826 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback-test.xml] at [file:.../logback-test.xml]
11:21:28,116 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
11:21:28,124 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender] …
Run Code Online (Sandbox Code Playgroud)

logback

132
推荐指数
6
解决办法
5万
查看次数

如何在测试时设置Spring日志记录级别?

我的Spring Boot测试堆栈是Maven + Surefire + JUnit4.我用它来注释测试@RunWith(SpringJUnit4ClassRunner.class).

application.properties在我的项目根目录中有这一行:

logging.level.root=INFO
Run Code Online (Sandbox Code Playgroud)

这可以在运行Spring启动应用程序时控制日志记录,并且可以在正常运行时运行.

但是,每当我运行任何JUnit4测试时,我都会被DEBUG输出页面发送垃圾邮件,如下所示:

....
17:43:20.500 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Returning cached instance of singleton bean 'autoConfigurationReport'
17:43:20.500 [main] DEBUG org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader - Registered bean definition for imported class 'org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperConfiguration'
17:43:20.501 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Returning cached instance of singleton bean 'org.springframework.boot.autoconfigure.condition.BeanTypeRegistry'
17:43:20.502 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Returning cached instance of singleton bean 'autoConfigurationReport'
....
Run Code Online (Sandbox Code Playgroud)

所有这些垃圾邮件几乎不可能看到实际相关的部分.如何应用日志记录级别来测试输出?

我没有明确设置任何日志记录,并且根据文档默认情况下使用Logback.

java logging spring logback maven

7
推荐指数
1
解决办法
1万
查看次数

如何添加登录测试(spring boot)?

我想在我的项目中添加日志记录(用于控制台),在测试部分中通过spring boot添加.我有我的考试:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {TestConfig.class})
public class MyTest {

    private final static org.slf4j.Logger LOGGER = LoggerFactory.getLogger(MyTest.class);

    @Autowired
    public UserDao userDao;

    @Test
    public void test1() {
        LOGGER.info("info test");
        LOGGER.debug("debug test");
    }
}
Run Code Online (Sandbox Code Playgroud)

和我的测试配置:

@Configuration
@EnableJpaRepositories("example.dao")
@ComponentScan(basePackageClasses = { MyServiceImpl.class})
@EntityScan({"example.model"})
@Import({DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
public class TestConfig {

}
Run Code Online (Sandbox Code Playgroud)

我在test/resource中创建application.properties文件.Gradle将我的资源文件夹视为测试资源.我的application.properties:

logging.level.= INFO
logging.level.tests.= INFO
logging.level.org.hibernate= INFO
logging.level.org.springframework= INFO
logging.level.org.apache.cxf= INFO
Run Code Online (Sandbox Code Playgroud)

但是当我进行测试时,我有:

16:59:17.593 [main] INFO  tests.MyTest - info test
16:59:17.594 [main] DEBUG tests.MyTest - debug test
Run Code Online (Sandbox Code Playgroud)

在控制台,为什么?我只设置'INFO'(logging.level.= INFO),为什么'DEBUG'在控制台?怎么设置好'INFO' …

java testing logging spring-boot

5
推荐指数
2
解决办法
7719
查看次数

标签 统计

java ×2

logback ×2

logging ×2

maven ×1

spring ×1

spring-boot ×1

testing ×1