浅谈spring boot 集成 log4j 解决与logback冲突的问题


Posted in Python onFebruary 20, 2020

现在很流行springboot的开发,小编闲来无事也学了学,开发过程中遇见了log4j日志的一个小小问题,特此记载。

首先在pox.xml中引入对应的maven依赖:

<!-- 引入log4j-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-log4j</artifactId>
      <version>1.3.8.RELEASE</version>
    </dependency>

然后在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: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [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: Found binding in [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: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
12:02:26.963 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Included patterns for restart : []
12:02:26.969 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Excluded patterns for restart : [/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] DEBUG org.springframework.boot.devtools.restart.ChangeableUrls - Matching URLs for reloading : [file:/F:/work_intel/code/demo1/target/classes/]
Logging system failed to initialize using configuration from 'src/main/resources/log4j.properties'

这是因为与logback的冲突并未解决,导致启动失败,根据上面的报错信息,找到logback-classic-1.2.3.jar和slf4j-log4j12-1.7.25.jar的相应位置删除,并在pom.xml中加入如下排除代码:

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <!-- 排除默认的logback日志,使用log4j-->
      <exclusions>
        <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

启动发现一切正常,至此,log4j的配置完毕。

以上这篇浅谈spring boot 集成 log4j 解决与logback冲突的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的startswith和endswith函数使用实例
Aug 25 Python
Python删除空文件和空文件夹的方法
Jul 14 Python
Python操作Access数据库基本步骤分析
Sep 19 Python
python操作mysql数据库
Mar 05 Python
Python MySQL数据库连接池组件pymysqlpool详解
Jul 07 Python
使用matplotlib画散点图的方法
May 25 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
Feb 12 Python
Python字符串逆序输出的实例讲解
Feb 16 Python
pandas的qcut()方法详解
Jul 06 Python
浅谈django channels 路由误导
May 28 Python
Flask搭建一个API服务器的步骤
May 28 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 Python
Python OpenCV读取显示视频的方法示例
Feb 20 #Python
基于spring boot 日志(logback)报错的解决方式
Feb 20 #Python
Django使用Celery加redis执行异步任务的实例内容
Feb 20 #Python
python logging.basicConfig不生效的原因及解决
Feb 20 #Python
Python3 shutil(高级文件操作模块)实例用法总结
Feb 19 #Python
python logging设置level失败的解决方法
Feb 19 #Python
Python实现病毒仿真器的方法示例(附demo)
Feb 19 #Python
You might like
PHP中的按位与和按位或操作示例
2014/01/27 PHP
php实现cookie加密的方法
2015/03/10 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
js 内存释放问题
2010/04/25 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
readonly和disabled属性的区别
2015/07/26 Javascript
JS+CSS简单树形菜单实现方法
2015/09/12 Javascript
javascript返回顶部的按钮实现方法
2016/01/09 Javascript
Webwork 实现文件上传下载代码详解
2016/02/02 Javascript
Angularjs 滚动加载更多数据
2016/03/17 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
你知道setTimeout是如何运行的吗?
2016/08/16 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
vee-validate vue 2.0自定义表单验证的实例
2018/08/28 Javascript
angular将html代码输出为内容的实例
2018/09/30 Javascript
Python struct模块解析
2014/06/12 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
2018/01/11 Python
matplotlib subplots 调整子图间矩的实例
2018/05/25 Python
Numpy之reshape()使用详解
2019/12/26 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
自荐信的两点禁忌
2013/10/30 职场文书
给女儿的表扬信
2014/01/18 职场文书
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
2014年两会学习心得体会
2014/03/10 职场文书
《故乡》教学反思
2014/04/10 职场文书
《孔繁森》教学反思
2014/04/17 职场文书
父亲节活动策划方案
2014/08/24 职场文书
2014党员学习习主席讲话思想汇报
2014/09/15 职场文书
排球赛新闻稿
2015/07/17 职场文书
七年级上册生物的课件
2019/08/07 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL