log4j 不动代码的情况下 升级为 log4j2

一、将原有的 log4j.properties 删除

 二、在resources 目录下 新建 log4j2.xml 文件

 注:resources 一定要配置为 资源文件夹

 log4j2.xml

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->
<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
<Configuration status="info" monitorInterval="60">
    <!--定义了两个常量方便后面复用 -->
    <properties>
        <!--生成的日志文件目录地址  -->
        <property name="LOG_HOME">logs/</property>
        <!--日志文件名称 -->
        <property name="FILE_NAME">LogFile</property>
    </properties>
    <!--先定义所有的appender-->
    <Appenders>
        <!-- 定义控制台输出 -->
        <Console name="Console" target="SYSTEM_OUT">
            <!--输出日志的格式-->
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %l - %msg%n" />
        </Console>
        <!--满足一定条件后,就重命名原日志文件用于备份,并从新生成一个新的日志文件 -->
        <!--fileName:指定当前日志文件的位置和文件名称   filePattern:指定当发生Rolling时,文件的转移和重命名规则-->
        <RollingFile name="uleWalletEjbLogFile"
                     fileName="${LOG_HOME}/${FILE_NAME}.log"
                     filePattern="${LOG_HOME}/$${date:yyyy-MM-dd}/${FILE_NAME}-%d{yyyy-MM-dd HH}-%i.log">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %l - %msg%n" />
            <Policies>
                <!--TimeBasedTriggeringPolicy这个配置需要和filePattern结合使用,
                注意filePattern中配置的文件重命名规则是${FILE_NAME}-%d{yyyy-MM-dd HH-mm}-%i,
                最小的时间粒度是mm,即分钟,TimeBasedTriggeringPolicy指定的size是1,结合起来就是每1分钟生成一个新文件。
                如果改成%d{yyyy-MM-dd HH},最小粒度为小时,则每一个小时生成一个文件。  -->
                <TimeBasedTriggeringPolicy interval="1" />
                <!--SizeBasedTriggeringPolicy  指定当文件体积大于size指定的值时,触发Rolling 2048 MB -->
                <SizeBasedTriggeringPolicy size="20 MB" />
            </Policies>
            <DefaultRolloverStrategy max="30" />
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console" />
            <AppenderRef ref="uleWalletEjbLogFile" />
        </Root>
    </Loggers>
</Configuration>
复制代码

这样的配置是 在logs 目录 下生成 每小时一个文件 最大20MB 最多30个

pom.xml

将下面的去掉

<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.21</version>
</dependency>

改为

复制代码
<dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>2.3</version>
</dependency>
<dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>2.3</version>
      <!-- <scope>provided</scope> -->
</dependency>

<!-- slf4j核心包 -->
<dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.2</version>
</dependency>
<!--用于与slf4j保持桥接-->
<dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <version>2.3</version>
</dependency>
复制代码

重新编译,打包即可。

注:如果出现下面的错误 说明 log4j2.xml 没有加载上

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

 

 此时查看

pom.xml 是否有这段代码

 如果 有则 应该加 下 

<include>**/**.xml</include>

 就可以了。

 

posted @   海乐学习  阅读(674)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示