Apache Log4j2日志配置

1、Log4j概念

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

  它主要由3个部分组成:数据库

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

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

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

  Log4j如今推出了Log4j2,本文中主要介绍Log4j2的配置。app

2、Log4j2的配置

  Log4j2没有默认的配置文件,须要咱们本身去建立配置文件以设置日志。eclipse

  1)  下载log4j2的jar包:

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

    

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

      

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

      

    而后在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目录下查看,发现日志已经跑起来了。

相关文章
相关标签/搜索