基于Maven的JavaWeb项目使用Log4j2

1 POM文件配置

<!-- apache log4j2 -->

    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>2.5</version>
    </dependency>


    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>2.5</version>
    </dependency>

2 log4j2.xml文件配置说明

<Configuration status="off" monitorInterval="1800">

    <properties>
        <!-- 系统日志主目录-->
        <property name="LOG_HOME">D:/BL_ECP/log4j</property>

        <!-- 系统名称-->
        <property name="SERVER_NAME">BL_ECP</property>

        <!--非ERROR级别日志以及滚动文件输出路径-->
        <property name="INFO_LOG_FILE_NAME">${LOG_HOME}/info/${SERVER_NAME}/ECP_INFO.log</property>
        <property name="INFO_ROLLING_FILE_NAME">${LOG_HOME}/info/${SERVER_NAME}-%d{yyyy-MM-dd}-%i.log.gz</property>


        <!--ERROR级别日志错误和滚动文件输出 -->
        <property name="ERROR_LOG_FILE_NAME">${LOG_HOME}/error/${SERVER_NAME}/ECP_ERROR.log</property>
        <property name="ERROR_ROLLING_FILE_NAME">${LOG_HOME}/error/${SERVER_NAME}-%d{yyyy-MM-dd}-%i.log.gz</property>

        <!-- 日志输出样式-->
        <property name="LOG_OUTPUT_PATTERN">%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n</property>

        <!-- 单个日志文件大小 -->
        <property name="SINGLE_LOG_FILE_SIZE">64M</property>
    </properties>

    <!-- 配置系统日志控制台输出格式-->
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="${LOG_OUTPUT_PATTERN}"/>
        </Console>


        <!--显示Error级别之外的信息 -->
        <RollingFile name="RollingFile_INFO" fileName="${INFO_LOG_FILE_NAME}" filePattern="${INFO_ROLLING_FILE_NAME}">
            <PatternLayout pattern="${LOG_OUTPUT_PATTERN}"/>
            <SizeBasedTriggeringPolicy size="${SINGLE_LOG_FILE_SIZE}"/>
            <Filters>
                <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
                <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
        </RollingFile>

       <!-- 显示Error和Fatal信息-->
        <RollingFile name="RollingFile_ERROR" fileName="${ERROR_LOG_FILE_NAME}" filePattern="${ERROR_ROLLING_FILE_NAME}">
            <PatternLayout pattern="${LOG_OUTPUT_PATTERN}"/>
            <SizeBasedTriggeringPolicy size="${SINGLE_LOG_FILE_SIZE}"/>
                <Filters>
                    <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
                </Filters>
        </RollingFile>

    </Appenders>
    <Loggers>
        <!-- 默认显示debug级别的日志-->
        <Root level="debug">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="RollingFile_INFO"/>
            <AppenderRef ref="RollingFile_ERROR"/>
        </Root>
    </Loggers>
</Configuration

3 Log4j2测试用例

该测试用例只是循环将不同级别的日志信息写入到之前配置对应的目录中,根据不同的机器性能,需要运行5-3分钟

package com.bl.ecp.test.core.config;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.Test;

/** * Log4j2.xml config test * * @author tony * @create 2016-04-06-15:59 * @since JDK7.0u80 */
public class Log4j2Test {

    private static final Logger logger = LogManager.getLogger(Log4j2Test.class);
    @Test
    public void testLog4j2Config(){
        while(true){

            logger.info("我是info信息");
            logger.debug("我是debug信息");
            logger.warn("我是warn信息");
            logger.fatal("我是fatal信息");
            logger.error("我是error信息");

        }
    }

}

4 程序运行结果示意图

info级别运行结果示意图
基于Maven的JavaWeb项目使用Log4j2_第1张图片

error级别运行结果示意图
基于Maven的JavaWeb项目使用Log4j2_第2张图片

欢迎扫描下方的二维码,关注微信公众服务号-艺无止境,分享IT技术干货。
基于Maven的JavaWeb项目使用Log4j2_第3张图片

你可能感兴趣的:(基于Maven的JavaWeb项目使用Log4j2)