浅谈spring boot 集成 log4j 解决与logback冲突的问题
现在很流行springboot的开发,小编闲来无事也学了学,开发过程中遇见了log4j日志的一个小小问题,特此记载。
首先在pox.xml中引入对应的maven依赖:
org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-log4j 1.3.8.RELEASE
然后在src/resources/下新建log4j.properties文件(摘抄自网上):
log4j.rootLogger=info,error,CONSOLE,DEBUG log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm}[%t][%c][%p]-%m%n log4j.logger.info=info log4j.appender.info=org.apache.log4j.DailyRollingFileAppender log4j.appender.info.layout=org.apache.log4j.PatternLayout log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm}[%t][%c][%p]-%m%n log4j.appender.info.datePattern='.'yyyy-MM-dd log4j.appender.info.Threshold=info log4j.appender.info.append=true log4j.appender.info.File=d://springboot3/logs/api_services_info.log log4j.logger.error=error log4j.appender.error=org.apache.log4j.DailyRollingFileAppender log4j.appender.error.layout=org.apache.log4j.PatternLayout log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm}[%t][%c][%p]-%m%n log4j.appender.error.datePattern='.'yyyy-MM-dd log4j.appender.error.Threshold=error log4j.appender.error.append=true log4j.appender.error.File=d://springboot3/logs/error/api_services_error.log log4j.logger.DEBUG=DEBUG log4j.appender.DEBUG=org.apache.log4j.DailyRollingFileAppender log4j.appender.DEBUG.layout=org.apache.log4j.PatternLayout log4j.appender.DEBUG.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm}[%t][%c][%p]-%m%n log4j.appender.DEBUG.datePattern='.'yyyy-MM-dd log4j.appender.DEBUG.Threshold=DEBUG log4j.appender.DEBUG.append=true log4j.appender.DEBUG.File=d://springboot3/logs/debug/api_services_debug.log
在application.yml中加入如下配置:
logging: config:src/main/resources/log4j.properties
至此,log4j的配置完毕,启动项目,发现会报错:
SLF4J:ClasspathcontainsmultipleSLF4Jbindings. SLF4J:Foundbindingin[jar:file:/C:/Users/tony/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J:Foundbindingin[jar:file:/C:/Users/tony/.m2/repository/org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J:Seehttp://www.slf4j.org/codes.html#multiple_bindingsforanexplanation. SLF4J:Actualbindingisoftype[ch.qos.logback.classic.util.ContextSelectorStaticBinder] 12:02:26.963[main]DEBUGorg.springframework.boot.devtools.settings.DevToolsSettings-Includedpatternsforrestart:[] 12:02:26.969[main]DEBUGorg.springframework.boot.devtools.settings.DevToolsSettings-Excludedpatternsforrestart:[/spring-boot-actuator/target/classes/,/spring-boot-devtools/target/classes/,/spring-boot/target/classes/,/spring-boot-starter-[\w-]+/,/spring-boot-autoconfigure/target/classes/,/spring-boot-starter/target/classes/] 12:02:26.969[main]DEBUGorg.springframework.boot.devtools.restart.ChangeableUrls-MatchingURLsforreloading:[file:/F:/work_intel/code/demo1/target/classes/] Loggingsystemfailedtoinitializeusingconfigurationfrom'src/main/resources/log4j.properties'
这是因为与logback的冲突并未解决,导致启动失败,根据上面的报错信息,找到logback-classic-1.2.3.jar和slf4j-log4j12-1.7.25.jar的相应位置删除,并在pom.xml中加入如下排除代码:
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-logging org.slf4j slf4j-log4j12
启动发现一切正常,至此,log4j的配置完毕。
以上这篇浅谈springboot集成log4j解决与logback冲突的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。