一、引入相关依赖

    1. <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl -->
    2. <dependency>
    3. <groupId>org.apache.logging.log4j</groupId>
    4. <artifactId>log4j-slf4j-impl</artifactId>
    5. <version>2.11.0</version>
    6. </dependency>
    7. <!-- lombok-->
    8. <dependency>
    9. <groupId>org.projectlombok</groupId>
    10. <artifactId>lombok</artifactId>
    11. <version>1.16.18</version>
    12. <scope>provided</scope>
    13. </dependency>

    二、resources目录下创建配置文件log4j2.xml

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <configuration status="ON">
    3. <appenders>
    4. <Console name="Console" target="SYSTEM_OUT">
    5. <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    6. </Console>
    7. <RollingFile name="RollingFile" fileName="logs/app.log"
    8. filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
    9. <PatternLayout pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
    10. <SizeBasedTriggeringPolicy size="5 MB" />
    11. </RollingFile>
    12. </appenders>
    13. <loggers>
    14. <root level="DEBUG">
    15. <appender-ref ref="Console"/>
    16. <appender-ref ref="RollingFile"/>
    17. </root>
    18. </loggers>
    19. </configuration>

    三、在类中使用

    1. @Log4j2
    2. public class BaseTest {
    3. private String host;
    4. private String env;
    5. private Properties properties;
    6. public BaseTest() {
    7. log.debug("读取配置文件");
    8. InputStream stream = this.getClass().getClassLoader().getResourceAsStream("env.properties");
    9. properties = new Properties();
    10. try {
    11. properties.load(stream);
    12. } catch (IOException e) {
    13. log.error("配置文件读取失败");
    14. e.printStackTrace();
    15. }
    16. String env = properties.getProperty("environment");
    17. String host = properties.getProperty("api.host");
    18. this.host = host;
    19. this.env = env;
    20. }
    21. }