首页 > 作文

log4j升级log4j2遇到的问题及解决方式

更新时间:2023-04-04 05:20:52 阅读: 评论:0

目录
log4j升级log4j2的问题一、导入包二、在src/main/resources下新建一个log4j2.xml文件升级log4j2遇到的那些坑

log4j升级log4j2的问题

一、导入包

 <!-- log --><dependency>      <groupid>org.slf4j</groupid>      <artifactid>slf4j-api</artifactid>      <version>${slf4j.version}</version></dependency><dependency>     <groupid>org.slf4j</groupid>     <artifactid>jcl-over-slf4j</artifactid>     <version>${slf4j.version}</version></dependency><dependency>    <groupid>org.apache.logging.log4j</groupid>    <artifactid>log4j-core</artifactid>    <version>2.8.2</version></dependency>        <!-- 日志桥接包, 适配log4j2 --><dependency>    <groupid>org.apache.logging.log4j</groupid>    <artifactid>log4j-slf4j-impl</artifactid>    <version>2.8.2</version></dependency>

注意:可能有些包需要依赖log4j,但是升级后只有log4j2了,此时会报找不到类的错,如:

caud by: java.lang.classnotfoundexception: org.apache.log4j.logger

那克字开头的成语么如果这些包没有使用slf4接口,而是写死了必须依赖log4j的话,如果实在不想导入log4j的包,那么只能找能代替这个包的工具包使用了

如:

<!-- 使用该报去掉log4j,后会报上述错误,所以就把这个包换了 --><dependency> <groupid>com.github.sgroschupf</groupid> <artifactid>zkclient</artifactid> <versi欢乐颂钢琴简谱on>0.1</version> <exclusions>  <exclusion>   <artifactid>log4j</artifactid>   <groupid>log4j</groupid>  </exclusion> </exclusions></dependency>

替换为如下的包,就可以了:

<dependency> <groupid>com.101tec</groupid> <artifactid>zkclient</artifactid> <version>0.10</version> <exclusions>  <exclusion>   <artifactid>log4j</artifactid>   <groupid>log4j</groupid>  </exclusion>  <exclusion>   <artifactid>slf4j-log4j12</artifactid>   <groupid>org.slf4j</groupid>  </exclusion> </exclusions> </depende排比句式ncy>

二、在src/main/resources下新建一个log4j2.xml文件

配置如下

<?xml version="1.0" encoding="utf-8" ?><configuration status="error"> <properties>        <property name="pattern" value="[%d{hh:mm:ss.sss} %-5level] [%t] %c{3} - %msg%n" />     <property name="file_path" value="/mysoft/logs" />     <property name="file_size" value="50 mb" />    </properties> <appenders><!-- 控制台日志打印 -->  <console name="console" target="system_out">   <patternlayout pattern="${pattern}"/>  </console>  <!-- 生产环境日志打印 --><!-- filename表示创建的日志文件名,filepattern表示如果日志策略按照日期与大小做限定的话,如果大小超过50m就会按该格式将之前的的日志文件重命名,并重新创建新的filename。同理,如果日期超过限定的时间,也会进行同样的操作,下文定义一天建一个,如果想一分钟建一个则filepattern="${file_path}/demo-%d{yyyy-mm-dd hh-mm}-%i.log" 如此定义-->  <rollingfile name="prodfile"    filename="${file_path}/demo.log"   filepattern="${file_path}/demo-%d{yyyy-mm-dd}-%i.log">   <patternlayout pattern="${pattern}" />   <policies>          <timebadtriggeringpolicy />          <sizebadtriggeringpolicy size="${file_size}"/>      </policies>   <filters>             <thresholdfilter level="error" onmatch="accept" onmismatch="deny" />         </filters>  </rollingfile> </appenders> <!-- root部分定义了log4j2的默认输出级别和方式 --> <loggers>  <root level="error">   <appender-ref ref="console" />   <appender-ref ref="prodfile" />  </root> </loggers></configuration> 

升级log4j2遇到的那些坑

<slf4j.version>1.7.13</slf4j.version><log4j2.version>2.3</log4j2.version><disruptor.version>3.3.2</disruptor.version><spring.version>3.2.4.relea</s图片说说pring.version><dependency>    <groupid>org.apache.logging.log4j</groupid>    <artifactid>log4j-api</artifactid>    <version>${log4j2.version}</version></dependency><dependency>    <groupid>org.apache.logging.log4j</groupid>    <artifactid>log4j-core</artifactid>    <version>${log4j2.version}</version></dependency><dependency>    <groupid>com.lmax</groupid>    <artifactid>disruptor</artifactid>    <version>${disruptor.version}</version></dependency><dependency>    <groupid>org.slf4j</groupid>    <artifactid>slf4j-api</artifactid>    <version>${slf4j.version}</version></dependency><dependency>    <groupid>org.apache.logging.log4j</groupid>    <artifactid>log4j-slf4j-impl</artifactid>    <version>${log4j2.version}</version></dependency>
<!--这块比较关键,spring原生应用中需要用到commons-logging,需要把它exclude掉,另外引入jcl-over-slf4j--><!--你会发现jcl-over-slf4j 只是改写了commons-logging 去兼容spring--><dependency>    <groupid>org.springframework</groupid>    <artifactid>spring-core</artifactid>    <exclusions>        <exclusion>            <artifactid>commons-logging</artifactid>            <groupid>commons-logging</groupid>        <屌丝啥意思/exclusion>    </exclusions></dependency><dependency>    <groupid>org.slf4j</groupid>    <artifactid>jcl-over-slf4j</artifactid>    <version>${slf4j.version}</version>    <scope>runtime</scope></dependency><!-- 如果代码中依赖的jar包用到了log4j1.2.x,当工程中将log4j1.2.x排除掉了之后,项目启动时会报错不成功的 --><!-- 把下面这个jar引入进来就ok了 --><dependency>    <groupid>org.slf4j</groupid>    <artifactid>log4j-over-slf4j</artifactid>    <version>${slf4j.version}</version></dependency>

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

本文发布于:2023-04-04 05:20:50,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/fd2b98862f80237d340034b0b6b634b8.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:log4j升级log4j2遇到的问题及解决方式.doc

本文 PDF 下载地址:log4j升级log4j2遇到的问题及解决方式.pdf

标签:日志   定义   文件   会报
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图