我正在使用Spring 5 MVC应用程序。我正在尝试进行纯Java配置。我注意到我的日志记录不起作用。我的application.properties中有这个:
logging.level.org.springframework.web=ERROR
logging.level.org.springframework.security=ERROR
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
现在,我当然不使用application.properties,那么如何在我的@Configuration类之一中以纯Java方式设置它呢?
最佳答案
如果您实际上想要获得纯Java记录器配置,则可以按以下方式进行设置:
public class LoggingInitializer implements ApplicationContextInitializer {
@Override
public void initialize(ConfigurableApplicationContext applicationContext) {
//suppose you use default logback (ch.qos.logback.classic.LoggerContext)
LoggerContext c = (LoggerContext) LoggerFactory.getILoggerFactory();
c.getLogger("ru.varren").setLevel(Level.DEBUG);
c.getLogger("org.springframework.web").setLevel(Level.ERROR);
c.getLogger("org.springframework.security").setLevel(Level.ERROR);
c.getLogger("org.hibernate.SQL").setLevel(Level.DEBUG);
}
}
然后在应用启动之前在main中将其初始化。
public class Main {
public static void main(String[] args){
new SpringApplicationBuilder(Main.class)
.initializers(new LoggingInitializer())
.run(args);
}
}
还要看看这个答案:https://stackoverflow.com/a/20521500/1032167