springboot设置日志级别时报错

配置springboot日志,输出级别为info,运行时报错:

Caused by: 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)

application.yml文件配置如下:

logging:
  pattern:
    console: "%d - %msg%n" #     定义打印的日志格式
#    dateformat: #设置日志日期格式
#    file: #定义输出到日志文件的日志格式
#  config: #日志配置文件的位置。例如,classpath:logback.xml。
  file: E:/sell/sell.log #设置保存日志的日志文件
#    max-history:
#    max-size: #设置日志文件最大大小 #设置日志等级
#  path: / #日志文件的位置,例如/var/log
  register-shutdown-hook: false #当初始化日志系统时,为其注册一个关闭钩子。
  level: info

原因是日志级别配置错误,应该配置为

level:
    root: info

原因如下:

在官方的文档找到如下图logging日志级别的配置,官方地址:https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-custom-log-levels

大致的意思就是我们可以使用TRACE, DEBUG, INFO, WARN, ERROR, FATAL, 或者 OFF来指定Spring项目日志级别,它的格式为:
logging.level.<logger-name>=<level>
所以我们在配置日志级别时要配置一个logger-name,所以我们可以像上图当中指定一个root,也可以指定一个包路径,配置成logging.level.root=WARN的意思就是配置根日志记录器,所以下面中的配置意思为:
logging.level.root=WARN
        logging.level.org.springframework.web=DEBUG
        logging.level.org.hibernate=ERROR
的配置就是org.springframework.web是DEBUG级别,org.hibernate是ERROR级别,其它项目的日志输出级别为WARN。

posted @ 2018-08-23 21:01  魔瞳  阅读(12973)  评论(1编辑  收藏  举报