基於spring boot 日誌(logback)報錯的解決方式
記錄一次報錯解決方法:
No converter found capable of converting from type [java.lang.String] to type [java.util.Map<java.lang.String,java.lang.String>]
org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'logging.level' to java.util.Map<java.lang.String,java.lang.String> at org.springframework.boot.context.properties.bind.Binder.handleBindError(Binder.java:250) at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:226) at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:210) at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:166) at org.springframework.boot.context.logging.LoggingApplicationListener.setLogLevels(LoggingApplicationListener.java:307) at org.springframework.boot.context.logging.LoggingApplicationListener.initializeFinalLoggingLevels(LoggingApplicationListener.java:290) at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:238) at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:200) at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:173) at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127) at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:74) at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54) at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:361) at org.springframework.boot.SpringApplication.run(SpringApplication.java:320) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1258) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246) Caused by: org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type [java.util.Map<java.lang.String,java.lang.String>] at org.springframework.core.convert.support.GenericConversionService.handleConverterNotFound(GenericConversionService.java:321) at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:194) at org.springframework.boot.context.properties.bind.BindConverter$CompositeConversionService.convert(BindConverter.java:162) at org.springframework.boot.context.properties.bind.BindConverter.convert(BindConverter.java:96) at org.springframework.boot.context.properties.bind.BindConverter.convert(BindConverter.java:88) at org.springframework.boot.context.properties.bind.MapBinder.bindAggregate(MapBinder.java:67) at org.springframework.boot.context.properties.bind.AggregateBinder.bind(AggregateBinder.java:58) at org.springframework.boot.context.properties.bind.Binder.lambda$bindAggregate$2(Binder.java:305) at org.springframework.boot.context.properties.bind.Binder$Context.withIncreasedDepth(Binder.java:441) at org.springframework.boot.context.properties.bind.Binder$Context.access$100(Binder.java:381) at org.springframework.boot.context.properties.bind.Binder.bindAggregate(Binder.java:304) at org.springframework.boot.context.properties.bind.Binder.bindObject(Binder.java:262) at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:221) ... 18 common frames omitted
application.yml中的原配置如下:(spring boot版本2.0.4)
logging: path: ./logs/ level: debug
報錯後,spring boot切換回1.5.9發現沒問題,因此去官網查詢
官網:https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-custom-log-levels
看到這部分
26.4 Log Levels
All the supported logging systems can have the logger levels set in the Spring Environment (for example,in application.properties) by using logging.level.<logger-name>=<level> where level is one of TRACE,DEBUG,INFO,WARN,ERROR,FATAL,or OFF. The root logger can be configured by using logging.level.root.
The following example shows potential logging settings in application.properties:
logging.level.root=WARN logging.level.org.springframework.web=DEBUG logging.level.org.hibernate=ERROR
看完這部分,將yml改為如下:
logging: path: ./logs/ level: root: debug
再次重啟,問題解決
以上這篇基於spring boot 日誌(logback)報錯的解決方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。