spring boot 集成 log4j 解决与logback冲突问题_spring log4j.properties 排除类-程序员宅基地

技术标签: logback冲突  SpringBoot  

现在很流行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的配置完毕。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40816738/article/details/103723624

智能推荐

高通平台Camera Dtsi解析_csiphy-sd-index-程序员宅基地

文章浏览阅读2.6k次,点赞4次,收藏19次。参考文件:Documentation/devicetree/bindings/media/video/msm-cam-cci.txtqcom,cam-sensor@0 { /*摄像头唯一区分标志,添加新的camera,该ID顺次加1,通过该ID会与camera_config.xml里的ID匹配,这样才会去加载该ID对应模组的驱动。*/ cell-index = <0>; /*匹配节点,驱动和设备的compatible属性相同时,才会调用probe函数。*/ _csiphy-sd-index

webworker应用场景_Web Workers 的使用场景有哪些-程序员宅基地

文章浏览阅读3.6k次。以前我们总说,JS是单线程没有多线程,当JS在页面中运行长耗时同步任务的时候就会导致页面假死影响用户体验,从而需要设置把任务放在任务队列中;执行任务队列中的任务也并非多线程进行的,然而现在HTML5提供了我们前端开发这样的能力 - Web Workers API,我们一起来看一看 Web Worker 是什么,怎么去使用它,在实际生产中如何去用它来进行产出。1. 概述Web Worker..._webworker使用场景

elasticsearch-5.5.2启动失败报错:max number of threads [1024] for user [lishang] likely too low_max number of threads [1024] for user [work] is to-程序员宅基地

文章浏览阅读1.4w次,点赞4次,收藏12次。错误提示:ERROR: [1] bootstrap checks failed [1]: max number of threads [1024] for user [elasticsearch] is too low, increase to at least [2048]错误原因:启动检查未通过 elasticsea..._max number of threads [1024] for user [work] is too low, increase to at leas

李嘉诚又“跑路”?卖了一代“地王”,大赚38亿!-程序员宅基地

文章浏览阅读201次。李嘉诚又有新动作了!7月23日晚,李嘉诚家族名下的长实集团发布公告称,以总价约71.02亿元(约10.12亿美元)价格,把旗下成都“南城都汇”项目,卖给“禹洲集团”和“成都瑞卓置业有限公司”,两家房企一人一半(各占50%股权);而李嘉诚将从中“赚”(未经审核收益)约38.11亿元。李嘉诚71亿卖掉成都“地王”7月23日晚,李嘉诚旗下公司长实集团发布了一则公告。公告称,由长实集团子公司所持有的成都南城都汇项目卖了,接盘方为一家名为RZ3262019 Limited的公司,股东分别为禹州集团控股有限公司

层次分析法详解(AHP),python代码,楼盘综合水平评价算法_pycharm ahp-程序员宅基地

文章浏览阅读2.6k次,点赞4次,收藏42次。该文章讲述了多层次分析法代码讲解,以及如何应用到楼盘综合水平分析当中_pycharm ahp

zeromq 中的 zmq_bind-程序员宅基地

文章浏览阅读2.8k次。zmq_bind:该api ,在一个socket上接受一个正在连接的连接 int zmq_bind (void '*socket', const char '*endpoint'); 它 绑定 socket到一个本地的端口,并且在这个端口上接受一个正在准备接入的连接 这个endpoint 是一个字符串,包含协议,地址,端口example: “tcp://_zmq_bind

随便推点

mac 下typora 转 word PDF_mac版本的typora怎么导出pdf-程序员宅基地

文章浏览阅读489次。mac 下typora 转 word _mac版本的typora怎么导出pdf

ubuntu安装bochs遇到的问题_致命错误: gtk/gtk.h:没有那个文件或目录-程序员宅基地

文章浏览阅读1.3k次。gtk_enh_dbg_osdep.cc:20:21: 致命错误: gtk/gtk.h:没有那个文件或目录编译中断解决方法:sudo apt-get install libgtk2.0-devsudo make dist-clean 一定要清除干净sudo ./configure --enable-debugger --enable-disasmsudo make_致命错误: gtk/gtk.h:没有那个文件或目录

【系统分析师】8.计算机组成和体系结构_2的-100阶码-程序员宅基地

文章浏览阅读244次。计算机组成和体系结构 浮点数 表示:尾数*基数的指数次方,2的-100 次方*5,5就是尾数,-100就是指数(阶码) 尾数,用尾码存储,标识数值,和数值的正负 指数,用阶码存储,标识精度,指数的正负 尾数决定精度(1.123456 就比 1.2 精度搞),指数决定范围(2的1次方 就没..._2的-100阶码

webpack4 优化耗时分析speed-measure-webpack-plugin插件_speed-measure-webpack-plugin webpack 4-程序员宅基地

文章浏览阅读1w次。能够列出输出、loader和plugins的耗时,过长将会使用黄色和红色显示1、下载 cnpm install -D speed-measure-webpack-plugin 2、使用 const SpeedMeasurePlugin=require('speed-measure-webpack-plugin') const smp = new SpeedMeasurePlugin(); smp.wrap({配置config})效果图:代码示例:const path = requ_speed-measure-webpack-plugin webpack 4

TPM零知识学习六 —— tpm2-tools源码安装_libtpm2toolsapi.so-程序员宅基地

文章浏览阅读1.7k次。TPM零知识学习六 —— tpm2-tools源码安装_libtpm2toolsapi.so

linux ssh 免登录设置_linux设置免登陆-程序员宅基地

文章浏览阅读711次。使用一种被称为"公私钥"认证的方式来进行ssh登录. "公私钥"认证方式简单的解释:首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥.在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了。步骤如下_linux设置免登陆