Java接口自动化之log4j日志框架

云平台

  点击上方头像我,每周上午 09:00准时推送,每月不定期赠送技术书籍,小窗口回复“资源”、“测试工具包”领取测试资源。

  上一篇Java接口自动化系列文章:Java接口自动化之IDEA创建及运行maven项目,主要介绍如何用IDEA创建maven项目、maven项目结构介绍及maven项目运行实战。

  以下主要介绍Java日志框架Log4j。

  01

  log4j简介

  1 log4j介绍

  Log4j(log for java)是java流行的日志框架,可以方便的记录日志。

  2 log4j特点

  ①灵活的配置日志的输出方式、优先级及输出格式;

  ②方便显示程序运行时的调试信息。

  3 log4j日志级别

  log日志,按照严重程度分为五个等级:DEBUG、INFO、WARN、ERROR和FATAL。

  Log4j默认日志级别为INFO,规则是只输出比默认日志级别高的等级,即只输出INFO、WARN、ERROR和FATAL等级,DEBUG等级则不会输出。

  02

  log4j日志三大部分

  Log4j三大组成部分:

  Loggers 日志等级Appers 日志输出到哪,控制台or文件?Layouts 日志输出格式

  接下来根据这三大组成部分分别介绍如何配置日志。

  1 Loggers 日志等级

  log日志,按照严重程度分为五个等级:DEBUG、INFO、WARN、ERROR和FATAL。

  Log4j默认日志级别为INFO,规则是只输出比默认日志级别高的等级,即只输出INFO、WARN、ERROR和FATAL等级,DEBUG等级则不会输出。

  在log4j.properties中,设置日志等级及输出源:

  # 设置日志等级及输出源

  log4j.rootLogger = INFO,console,file

  其中,INFO为日志等级,console,file表示需要输出到控制台和文件中。

  2 Apper 日志输出位置

  Apper 主要是用于定义日志输出到哪里,比如控制台、日志文件、数据库及邮件等。上面我们设置日志输出到console,file,那么接下来如何配置日志输出到console及file中呢。在log4j.properties中,设置日志输出位置。

  输出到控制台:

  # 输出到控制台

  log4j.apper.console=org.apache.log4j.ConsoleApper

  log4j.apper.console.Target=System.out

  输出到日志文件

  # 将日志记录在文件中, 每天一个备份文件

  log4j.apper.file = org.apache.log4j.DailyRollingFileApper

  # 输出日志到具体文件中

  log4j.apper.file.File = target/logs/auto_api.log

  log4j.apper.file.App = true

  03

  log4j日志实战

  ①创建maven项目(上篇介绍过,这里不再重复),在resources资源目录下新建文件log4j.properties。

  ②log4j.properties内容如下:

  # 设置日志等级及输出源

  log4j.rootLogger = INFO,console,file

  # 输出到控制台

  log4j.apper.console=org.apache.log4j.ConsoleApper

  log4j.apper.console.Target=System.out

  log4j.apper.console.layout=org.apache.log4j.PatternLayout

  log4j.apper.console.layout.ConversionPattern= %p %d{yyyy-MM-dd HH:mm:ss} --> [%t] %l: %m %x %n

  # 输出到文件

  log4j.apper.file = org.apache.log4j.DailyRollingFileApper

  log4j.apper.file.File = target/logs/auto_api.log

  log4j.apper.file.App = true

  log4j.apper.file.layout = org.apache.log4j.PatternLayout

  log4j.apper.file.layout.ConversionPattern = %p %d{yyyy-MM-dd HH:mm:ss} --> [%t] %l: %m %x %n

  ③创建Log4jTest类,编写代码。

  import org.apache.log4j.Logger;

  public class Log4jTest {

   public static Logger logger = Logger.getLogger(Log4jTest.class);

   public static void main(String[] args) {

   test();

   }

   public static void test(){

   logger.debug("这是debug级别");

   logger.info("这是info级别");

   logger.warn("这是warn级别");

   logger.error("这是error级别");

   }

  }

  代码说明:

  Logger.getLogger(Log4jTest.class),其中参数Log4jTest.class中的Log4jTest表示当前Log4jTest这个类,作用是追踪Log4jTest类产生的日志。logger.debug,logger.info,logger.warn,logger.error表示要输出的日志级别,默认级别info。

  ④运行代码,查看实际日志运行效果。

  控制台日志输出:

  INFO 2020-12-31 16:17:04 --> [main] com.vivi.Log4jTest.test(Log4jTest.java:15): 这是info级别

  WARN 2020-12-31 16:17:04 --> [main] com.vivi.Log4jTest.test(Log4jTest.java:16): 这是warn级别

  ERROR 2020-12-31 16:17:04 --> [main] com.vivi.Log4jTest.test(Log4jTest.java:17): 这是error级别

  之前配置文件log4j.properties里,将日志输入到target/logs下的auto_api.log中,日志记录如下:

  (完)

  我是CoCo,计算机科学与技术专业,深漂大厂互联网民工(女),坐标深圳。5年工作经验,3年持续输出技术文。ITester软件测试小栈(ID:ITestingA)号主,Boss直聘好文社区签约作者,腾讯云社区优质创作者。专注于软件测试技术和宝藏干货分享,每周准时更新原创技术文章,每月不定期赠送技术书籍,愿我们在更高处相逢。喜欢记得星标⭐我,每周及时获得最新推送,第三方转载请注明出处。

  喜欢记得星标置顶,让我们一起守护成长

标签: 云平台