美文网首页
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