美文网首页
log4j2配置

log4j2配置

作者: 阿杰_96c5 | 来源:发表于2022-02-10 10:45 被阅读0次

log4j2配置

添加依赖包

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.******</groupId>
    <artifactId>******</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>******s</name>
    <description>******</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.1</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- Exclude Spring Boot's Default Logging -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- Add Log4j2 Dependency -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        <dependency>
            <groupId>com.lmax</groupId>
            <artifactId>disruptor</artifactId>
            <version>3.4.1</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

添加配置文件log4j2.xmlresources文件中

<?xml version="1.0" encoding="UTF-8"?>

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

    <properties>
        <property name="LOG_HOME">D:/fuyouLog</property>
        <property name="consolePattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%level] %class{36} (%M:%L) [%X{seq}] - %msg%n</property>

    </properties>

    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="${consolePattern}" />
        </Console>


        <RollingRandomAccessFile name="info"
                                 fileName="${LOG_HOME}/info.log"
                                 filePattern="${LOG_HOME}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout pattern="${consolePattern}" />
            <Filters>
                <ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
                <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" />
                <SizeBasedTriggeringPolicy size="20MB" />
            </Policies>
            <DefaultRolloverStrategy max="20"/>
        </RollingRandomAccessFile>

        <RollingRandomAccessFile name="warn"
                                 fileName="${LOG_HOME}/warn.log"
                                 filePattern="${LOG_HOME}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout pattern="${consolePattern}" />
            <Filters>
                <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
                <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" />
                <SizeBasedTriggeringPolicy size="20MB" />
            </Policies>
            <DefaultRolloverStrategy max="20"/>
        </RollingRandomAccessFile>

        <RollingRandomAccessFile name="error"
                                 fileName="${LOG_HOME}/error.log"
                                 filePattern="${LOG_HOME}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout pattern="${consolePattern}" />
            <Filters>
                <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" />
                <SizeBasedTriggeringPolicy size="20MB" />
            </Policies>
            <DefaultRolloverStrategy max="20"/>
        </RollingRandomAccessFile>

        <RollingRandomAccessFile name="request"
                                 fileName="${LOG_HOME}/request.log"
                                 filePattern="${LOG_HOME}/$${date:yyyy-MM}/request-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout pattern="${consolePattern}" />
            <Filters>
                <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" />
                <SizeBasedTriggeringPolicy size="20MB" />
            </Policies>
            <DefaultRolloverStrategy max="20"/>
        </RollingRandomAccessFile>
    </Appenders>

    <Loggers>
        <logger name="com.xxl.job" level="warn" additivity = "false"/>

        <logger name="requestLog" level="info" additivity = "false">
            <AppenderRef ref="console" />
            <AppenderRef ref="request"/>
        </logger>

        <asyncRoot level = "info" includeLocation="true">
            <AppenderRef ref="console" />
            <AppenderRef ref="info" />
            <AppenderRef ref="warn" />
            <AppenderRef ref="error" />
        </asyncRoot>
    </Loggers>
</Configuration>

测试日志

package com.comvee.fuyoudata.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
@RequestMapping("loger")
public class LoggerController {
    private final Logger logger = LoggerFactory.getLogger(this.getClass());
    @RequestMapping("mylog")
    public String index(){
        logger.debug("This is a debug message");
        logger.info("This is an info message");
        logger.warn("This is a warn message");
        logger.error("This is an error message");
        return "success";
    }
}

配置自定义日志级别

<Appenders>
<RollingRandomAccessFile name="request"
                         fileName="${LOG_HOME}/request.log"
                         filePattern="${LOG_HOME}/$${date:yyyy-MM}/request-%d{yyyy-MM-dd}-%i.log">
    <PatternLayout pattern="${consolePattern}" />
    <Filters>
        <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
    </Filters>
    <Policies>
        <TimeBasedTriggeringPolicy interval="1" />
        <SizeBasedTriggeringPolicy size="20MB" />
    </Policies>
    <DefaultRolloverStrategy max="20"/>
</RollingRandomAccessFile>
</Appenders>
 <Loggers>
     <logger name="requestLog" level="info" additivity = "false">
            <AppenderRef ref="console" />
            <AppenderRef ref="request"/>
        </logger>
</Loggers>
private final static Logger log = LoggerFactory.getLogger("requestLog");
 log.info("requestLogrequestLogrequestLogrequestLog");

相关文章

网友评论

      本文标题:log4j2配置

      本文链接:https://www.haomeiwen.com/subject/rozwkrtx.html