• 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>

     就可以了。

  • 相关阅读:
    pmp组织结构
    在Python中使用ArcObjects(来自Mark Cederholm UniSource Energy Services )
    C#中使用多线程访问winform的值
    白话地图投影之图解投影
    白话地图投影之初识地球
    验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保<machineKey>
    外连接
    Repeater二级绑定
    内连接
    Access多条件查询前几条数据
  • 原文地址:https://www.cnblogs.com/hailexuexi/p/15184923.html
Copyright © 2020-2023  润新知