浅谈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操作xml文件示例
Apr 07 Python
pip 错误unused-command-line-argument-hard-error-in-future解决办法
Jun 01 Python
轻松实现python搭建微信公众平台
Feb 16 Python
浅谈Python由__dict__和dir()引发的一些思考
Oct 30 Python
用TensorFlow实现戴明回归算法的示例
May 02 Python
python批量创建指定名称的文件夹
Mar 21 Python
Python除法之传统除法、Floor除法及真除法实例详解
May 23 Python
python实现感知机线性分类模型示例代码
Jun 02 Python
3种python调用其他脚本的方法
Jan 06 Python
pandas中ix的使用详细讲解
Mar 09 Python
基于Python计算圆周率pi代码实例
Mar 25 Python
django 模型字段设置默认值代码
Jul 15 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通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
php模板原理讲解
2013/11/13 PHP
简单的自定义php模板引擎
2016/08/26 PHP
基于jQuery的弹出消息插件 DivAlert之旅(一)
2010/04/01 Javascript
javascript面向对象之Javascript 继承
2010/05/04 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
利用JS实现简单的瀑布流加载图片效果
2017/04/22 Javascript
关于Promise 异步编程的实例讲解
2017/09/01 Javascript
Vue的移动端多图上传插件vue-easy-uploader的示例代码
2017/11/27 Javascript
JavaScript实现区块链
2018/03/14 Javascript
使用Vue构建可重用的分页组件
2018/03/26 Javascript
JavaScript实现JSON合并操作示例【递归深度合并】
2018/09/07 Javascript
使用express获取微信小程序二维码小记
2019/05/21 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
react PropTypes校验传递的值操作示例
2020/04/28 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
python实现停车管理系统
2018/11/30 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
django ORM之values和annotate使用详解
2020/05/19 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
CSS3制作圆角图片和椭圆形图片
2016/07/08 HTML / CSS
HTML5实现QQ聊天气泡效果
2017/06/26 HTML / CSS
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
药品采购员岗位职责
2014/02/08 职场文书
天猫某品牌专卖店运营计划书
2014/03/21 职场文书
团日活动总结
2014/04/28 职场文书
出售房屋委托书范本
2014/09/24 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
解决Redis启动警告问题
2022/02/24 Redis
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers