好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

springboot 使用logback启动报警报错的解决

springboot logback启动报警报错

报错信息如下:

?

1

2

3

4

5

6

16 : 06 : 07 , 484 |-INFO in ch.qos.logback.classic.LoggerContext[ default ] - Could NOT find resource [logback-test.xml]

16 : 06 : 07 , 484 |-INFO in ch.qos.logback.classic.LoggerContext[ default ] - Could NOT find resource [logback.groovy]

16 : 06 : 07 , 485 |-INFO in ch.qos.logback.classic.LoggerContext[ default ] - Found resource [logback.xml] at [file:/C:/Users/Administrator/Desktop /***/ ***/target/classes/logback.xml]

16 : 06 : 07 , 638 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set

16 : 06 : 07 , 646 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]

16 : 06 : 07 , 653 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [consoleAppender]

先说解决方法:

把日志文件名称改为-spring结尾就不报警了!!! logback-spring.xml

tips(springboot日志使用logback):

Spring Boot官方推荐优先使用带有-spring的文件名作为你的日志配置(如使用logback-spring.xml,而不是logback.xml),如果想自定义文件名,可以通过logging.config属性指定自定义的名字:

?

1

logging.config=classpath:my-logging-config.xml

官方start包中已经默认集成了slf4j和logback不用导入任何日志依赖

推荐使用logback,性能优于log4j

设置logback彩色日志

?

1

2

3

4

5

6

7

8

9

< property name = "log.consolePattern" value = "%highlight(%date{yyyy-MM-dd HH:mm:ss.SSS}) %boldYellow([%thread]) %highlight([%-5level])  %boldCyan([%replace(%caller{1}){'\t|Caller.{1}0|\r\n', ''}]) %msg%n" />

 

<!-- 控制台设置,主要是上方pattern修改就可以,其他地方可以用不同pattern -->

< appender name = "CONSOLE_APPENDER" class = "ch.qos.logback.core.ConsoleAppender" >

     < encoder >

         < pattern >${log.consolePattern}</ pattern >  <!-- 控制台日志输出格式 -->

         < charset >utf8</ charset >

     </ encoder >

</ appender >

springboot多环境开发日志

?

1

2

3

4

5

6

7

8

<!-- 测试环境+开发环境. 多个使用逗号隔开 -->

< springProfile name = "test,dev" >

  < logger name = "工程包路径" level = "info" />

</ springProfile >

<!-- 生产环境. -->

< springProfile name = "prod" >

  < logger name = "工程包路径" level = "ERROR" />

</ springProfile >

banner.txt

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

/***

  * _ooOoo_

  * o8888888o

  * 88" . "88

  * (| -_- |)

  *  O\ = /O

  * ___/`---'\____

  * .   ' \\| |// `.

  * / \\||| : |||// \

  * / _||||| -:- |||||- \

  * | | \\\ - /// | |

  * | \_| ''\---/'' | |

  * \ .-\__ `-` ___/-. /

  * ___`. .' /--.--\ `. . __

  * ."" '< `.___\_<|>_/___.' >'"".

  * | | : `- \`.;`\ _ /`;.`/ - ` : | |

  * \ \ `-. \_ __\ /__ _/ .-` / /

  * ======`-.____`-.___\_____/___.-`____.-'======

  * `=---='

  *          .............................................

  *           佛曰:bug泛滥,我已瘫痪!

  */

springboot使用logback会遇到的坑

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

Caused by: java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation ( class org.apache.logging.slf4j.Log4jLoggerFactory loaded from file:/C:/Users/fyk/.m2/repository/org/apache/logging/log4j/log4j-slf4j-impl/ 2.7 /log4j-slf4j-impl- 2.7 .jar). If you are using WebLogic you will need to add 'org.slf4j' to prefer-application-packages in WEB-INF/weblogic.xml: org.apache.logging.slf4j.Log4jLoggerFactory

     at org.springframework.util.Assert.instanceCheckFailed(Assert.java: 389 )

     at org.springframework.util.Assert.isInstanceOf(Assert.java: 327 )

     at org.springframework.boot.logging.logback.LogbackLoggingSystem.getLoggerContext(LogbackLoggingSystem.java: 274 )

     at org.springframework.boot.logging.logback.LogbackLoggingSystem.beforeInitialize(LogbackLoggingSystem.java: 98 )

     at org.springframework.boot.logging.LoggingApplicationListener.onApplicationStartingEvent(LoggingApplicationListener.java: 230 )

     at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java: 209 )

     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: 122 )

     at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java: 69 )

     at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java: 48 )

     at org.springframework.boot.SpringApplication.run(SpringApplication.java: 292 )

     at org.springframework.boot.SpringApplication.run(SpringApplication.java: 1118 )

     at org.springframework.boot.SpringApplication.run(SpringApplication.java: 1107 )

     at com.light.SpringbootApplication.main(SpringbootApplication.java: 32 )

     ... 5 more

在spring boot中导入logback jar包会与spring-boot-starter-web冲突,应该是springboot中已经包含了这个包,

?

1

2

3

4

5

< dependency >

  < groupId >ch.qos.logback</ groupId >

  < artifactId >logback-classic</ artifactId >

  < version >1.2.3</ version >

</ dependency >

去掉这个导入就好了!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

原文链接:https://blog.csdn.net/JGMa_TiMo/article/details/95635005

查看更多关于springboot 使用logback启动报警报错的解决的详细内容...

  阅读:23次