章节十五、9-自定义Loggers

一、如何给不同的包设置不同的日志级别?

1、针对不同的包来记录不同级别的日志信息

2、在日志xml配置文件中加入配置信息(红色标注)

 1 
 2 
 3     
 4     
 5     
 6         ./logs
 7     
 8     
 9     
10         
11         <RollingFile
12             name="File"
13             fileName="${basePath}/app.log"
14             filePattern="${basePath}/app-%d{yyyy-MM-dd}.log">
15             
16             <PatternLayout
17                 pattern="%d{HH:mm:ss.SSS} %-5level %c{2} -%msg%n" />
18             
19                 
20                 
21                 <TimeBasedTriggeringPolicy
22                     interval="1"
23                     modulate="true" />
24                 
25                 
26             
27         
28         
29         
30             
31             <PatternLayout
32                 pattern="%d{HH:mm:ss.SSS} %-5level %c{2} -%msg%n" />
33         
34     
35     
36         
37         
38         
42             
43         
44         
45         
49             
50         
51         
52         
53         
54             
55             
56         
57     
58 

注:

 

name="log4jtutorial":因为我们需要配置log4jtutorial包中的类输出info级别以上的日志,因此name需要赋值相对应的包名log4jtutorial。
level="info":表示只输出info级别以上的日志。
additivity="false":因为<
Root level="trace">设置的是针对于全部包输出的日志级别,如果
additivity不设置为flase,那么log4jtutorial包中的类日志信息会输出2次。
 

3、打印日志信息类

log4jtutorial包中的类
 1 package log4jtutorial;
 2 
 3 import org.apache.logging.log4j.LogManager;
 4 import org.apache.logging.log4j.Logger;
 5 
 6 public class LoggingFile {
 7 
 8     private static final Logger log = LogManager.getLogger(LoggingFile.class.getName());
 9     public static void main(String[] args) {
10             
11             log.trace("Trace message logged");
12             log.debug("Debug message logged");
13             log.info("Info message logged");
14             log.error("Error message logged");
15             log.fatal("Fatal message logged");
16     }
17 }

log4j包中的类

package log4j;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class LoggingDemo {
    
//    首先需要定义一个log对象
//    定义成static final是因为只需要这一个实例,不能再有子类,多次调用的都是这一个实例,所以我们可以一直用这个对象来记录日志,不需要创建新的对象。
//    .getLogger()方法返回的是一个Logger对象实例
//    括号里面的参数用来记现在所在的类(LoggingDemo.class.getName())
    private static final Logger log = LogManager.getLogger(LoggingDemo.class.getName());
    
    public static void main(String[] args) {
        log.trace("Trace message logged");
        log.debug("Debug message logged");
        log.info("Info message logged");
        log.error("Error message logged");
        log.fatal("Fatal message logged");
    }
}

4、日志输出信息

log4jtutorial包中的类日志输出信息

log4j包中的类日志输出信息

 

二、如何将log4j应用到测试用例中

 1 package log4jtutorial;
 2 
 3 import static org.junit.jupiter.api.Assertions.*;
 4 
 5 import java.util.concurrent.TimeUnit;
 6 
 7 import org.apache.logging.log4j.LogManager;
 8 import org.apache.logging.log4j.Logger;
 9 import org.junit.jupiter.api.AfterEach;
10 import org.junit.jupiter.api.BeforeEach;
11 import org.junit.jupiter.api.Test;
12 import org.openqa.selenium.WebDriver;
13 import org.openqa.selenium.chrome.ChromeDriver;
14 
15 class TestNG_TestCase {
16 
17     private WebDriver driver;
18     private String url;
19 //    声明一个log对象
20     private static final Logger log = LogManager.getLogger(TestNG_TestCase.class.getName());
21 
22     @BeforeEach
23     void setUp() throws Exception {
24         driver = new ChromeDriver();
25         url = "https://www.baidu.com";
26         driver.manage().window().maximize();
27         driver.manage().timeouts().implicitlyWait(2000, TimeUnit.SECONDS);
28 //        列如我们需要在打开浏览器最大化之后记录log,那么我们就在此处设置log记录代码
29         log.info("浏览器最大化 ");
30     }
31 
32     @Test
33     void test() {
34         driver.get(url);
35         log.info("打开网站");
36     }
37 
38     @AfterEach
39     void tearDown() throws Exception {
40         Thread.sleep(2000);
41         driver.quit();
42     }
43 }

打印结果:

 

 

 

如果有不明白的小伙伴可以加群“555191854”问我,群里都是软件行业的小伙伴相互一起学习。

内容具有连惯性,未标注的地方可以看前面的博客,这是一整套关于ava+selenium自动化的内容,从java基础开始。

欢迎关注,转载请注明来源。

你可能感兴趣的:(章节十五、9-自定义Loggers)