Apache Log4j2日志配置

一、Log4j概念

  Log4j是一款可以记录测试日志的开源项目。通过调用其API记录日志信息,可以让我们在执行用例时不必守在电脑面前等待结果,仅需在用例执行完成后,通过Log4j收集到的代码执行信息查看执行结果,以调试程序。

  它主要由3个部分组成:

    1) Logger:Logger类帮助记录不同日志级别的信息:trace < debug < info < warn < error < fatal ,越往后级别越高,输出的日志信息也越少;

    2) Appenders:Appenders是一个对象,log4j支持多种appenders样式用以设置日志输出到不同目的地,可以指定输出目的为控制台、数据库或具体的文件路径;

    3) Layout:Layout类用来配置日志最终的输出格式; 

  Log4j现在推出了Log4j2,本文中主要介绍Log4j2的配置。

二、Log4j2的配置

  Log4j2没有默认的配置文件,需要我们自己去创建配置文件以设置日志。

  1)  下载log4j2的jar包:

    在apache官网下载:https://logging.apache.org/log4j/2.x/download.html  ,选择二进制的zip包:

    

    在跳转后的页面中选择其中一个服务器即可,我选的是第一个,点击后即可下载:

      

    下载至本地后解压,我们只需要取其中的log4j-api-2.11.1.jar和log4j-core-2.11.1.jar这两个包即可:

      

    然后在IntelliJ IDEA中点击File ---> Project Structure ---> Modules中导入这两个jar文件即可。

    或者我们可以在maven仓库中,分别搜索log4j api和log4j core,搜索到内容后分别把代码复制下来,在pom.xml文件中添加依赖,这个依据个人操作习惯而定,下图是添加依赖的代码:

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

   2) log4j2配置文件

    本文主要讲xml文件的配置,首先配置文件的名称必须为“log4j2.xml”,并且该文件必须在源文件夹下才能生效!

    创建log4j2.xml文件后,将其父文件夹设置为源文件夹,右键文件夹 ---> Mark Directory as ---> Resource Root:      

      

    然后打开log4j2.xml文件,输入配置内容:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <!--指定日志文件的名称-->
        <RollingFile name="File" fileName="logs/log4j2.log" filePattern="logs/log4j2-%d{yyyy-MM-dd}.log">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm.ss} %-5level %c{1} -%msg%n" />
            <Policies>
                <!-- 指定日志文件每天生成一个新的日志文件;如果日志大于100kb,则重新生成一个 -->
                <!-- <TimeBasedTriggeringPolicy interval="1" modulate="true" /> -->
                <SizeBasedTriggeringPolicy size="100KB" />
            </Policies>
        </RollingFile>
        <!--配置输出到控制台-->
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm.ss} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
    </Appenders>
    <Loggers>
        <Root level="trace">
            <AppenderRef ref="File" />
        </Root>
    </Loggers>
</Configuration>

    这样,我们的log4j2配置文件就配置好了。由于上面指定了日志文件需要存放在logs目录下,因此我们需要在该项目中,在和src同级的位置,创建一个名为logs的文件夹,第一次日志运行后,会自动在该文件夹下创建一个名为log4j2.log的日志文件,我们的日志就在这个文件中记录。

  3) 在程序中运用日志

package com.hizuche.testcase.log;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;

public class Log4jDemo {
    private static Logger logger = LogManager.getLogger(Login.class.getName());
    public static void main(String[] args) {
        logger.debug("第一次记录debug信息");
        logger.error("第一次记录error信息");
        logger.fatal("第一次记录fatal信息");
  }    
}

    然后,我们在testng.xml文件中运行这个类,如果你用的是eclipse,那么此时已经生成了日志文件;如果是IntelliJ IDEA,会发现并没有生成对应的日志文件,因为IntelliJ IDEA默认是不输出日志的,需要在Run ---> Edit Configurations中对需要运行的类配置如下:

      

    然后到我们的logs目录下查看,发现日志已经跑起来了。

原文地址:https://www.cnblogs.com/May-study/p/9916532.html