ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java真的不难(十五)Log4j日志

2022-02-25 21:02:35  阅读:193  来源: 互联网

标签:info Java 记录 System Log4j debug 日志 log4j


Log4j日志:

什么是Log4j?
log4j是一个常用的日志框架,用于记录应用程序的执行过程或异常等记录在日志文件中,可以通过日志文 件知道应用程序的操作和异常信息。

为什么要用日志?
我们知道,程序在运行过程中会产生很多很多信息,比如在几点几分的时候运行了,运行的结果是怎么样的?为了我们更加了解程序运行的情况,可以通过日志来查看,日志可以在控制台输出,也可以输出至指定的文件内,在下面的文章中具体的给大家介绍。

下载:
Log4J是Apache公司的开源项目,用于日志处理。下载地址:

https://logging.apache.org/log4j/2.x/download.html

在这里插入图片描述
下载完成后,我们可以得到一个后缀名为jre的包。

详细步骤:

  • 一、然后打开IDEA,可以新建一个项目,然后在项目内新建一个lib包,把log4j.jar这个包放进去。

在这里插入图片描述
然后在src内创建一个类:
RH ZAI
按照图的步骤即可:
在这里插入图片描述

在这里把jre的包添加即可:

在这里插入图片描述

  • 二、创建日志对象:
    当完成上述操作后,即可在类里面建立对象:
    注意:这里选择的Logger包是要来自apache的包,这里一定不要选错!
    在这里插入图片描述
import org.apache.log4j.Logger;

public class logTest {

    public static void main(String[] args) {

        //导入对象:
        Logger log = Logger.getLogger(logTest.class);
        log.error("用于记录error级别的信息"); //记录严重错误
        log.warn("用于记录warn级别的信息");   //记录警告
        log.info("用于记录info级别的信息");   //记录信息
        log.debug("用于记录debug级别的信息"); //记录debug
    }
}

接着我们需要创建配置文件:
新建一个文件file,文件后缀名一定要是properties
在这里插入图片描述
然后新建一个文件,名字可以设为:resources,并且把格式改为如下图:
在这里插入图片描述

然后把刚刚建的配置文件放入这个文件内即可:
在这里插入图片描述
我们需要在log.properties内配置以下三个最要信息:

  1. 配置你的程序将什么级别的日志记录到日志文件中
  2. 指定日志输出的目的地,是将日志记录到程序的控制台((瞬时状态的)还是在磁盘的某个文件中(持久化保存)
  3. 指定输出到控制台或者文件中的日志信息的输出格式,或者说以什么样的格式记录这些日志信息。

设置的模板如下:
直接复制到log.properties内即可:

# 1.设置输出级别info,可以将info以及更高级别的记录到日志文件中,但其更低的比如debug级别就不会记录到日志文件中
# stdout是设置的日志记录的目的地(名字可以随便起的当时要对应上)
log4j.rootLogger=info,stdout

#2.设置日志记录的目的地(ConsoleAppender是记录到控制台)
log4j.appender.stdout=org.apache.log4j.ConsoleAppender

#3.设置记录的格式或样式(System.err是红色样式、System.out是黑色样式)
log4j.appender.stdout.Target=System.err
# 设置记录的格式
#PatternLayout是按照我们自定义规则布局 (%d %l %m %n就是指定的规则布局)
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %l %m %n


这个配置信息我们可以先不看,完成上面的配置,我们先运行一下上面的那段代码:
在这里插入图片描述
如果出现这样,说明是正确的。
我们重新写一段代码来看看这个日志的功能:

import org.apache.log4j.Logger;

import java.util.Scanner;

public class test2 {
    public static void main(String[] args) {

        Logger logger = Logger.getLogger(test2.class);
        Scanner input = new Scanner(System.in);
        try{
            System.out.println("请输入除数:");
            int a = input.nextInt();
            logger.debug("bug:输入除数"+a);
            logger.info("info:输入除数"+a);
            System.out.println("请输入被除数:");
            int b = input.nextInt();
            logger.debug("bug:输入除数"+b);
            logger.info("info:输入除数"+b);
            int c = a/b;

            //把结果记录到日志文件中
            logger.debug("bug:结果"+c);
            logger.info("info:结果"+c);
            System.out.println("结果是:"+c);

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println(e.getMessage());
        }finally {
            System.out.println("程序结束!!");
        }
    }

}

这是一段除法的运算,先运行,看效果:
在这里插入图片描述
我们发现,我们在程序内执行的每一步,日志都记录了下来,因为在配置文件内设置的是输出至控制台,所以直接在控制台显示了日志信息,如果需要输出至指定文件,需要配置如下:
在这里插入图片描述
然后再运行除法的程序:
在这里插入图片描述
在控制台没有显示日志信息了,因为已经设置成输出至指定的文件内:
根据设置的路径,我们可以看到:
在这里插入图片描述
这样的记录有时间信息,有程序名信息,还有在程序的第几行发生了什么的信息全部被记录了下来。
当然输出的格式还有很多很多,可以根据需要去另外设置即可!

关于Log4j日志小应学长就讲到这里,完成这些步骤,一个简单的日志记录就完成了,下面日志输出的级别也需要注意。

日志的输出等级:

1.off:最高等级,用于关闭所有日志记录 
2.fatal 指出每个严重的错误时间将会导致应用程序的退出 
3.error 指虽然发送错误事件,但仍然不影响系统的运行 
4.warn 指明会出现潜在的错误情形 
5.info 一般用户记录程序的运行过程 
6.debug 一般用于调试的信息记录 
7.all 最低级别,用于打开所有的日志记录

在这里插入图片描述

标签:info,Java,记录,System,Log4j,debug,日志,log4j
来源: https://blog.csdn.net/m0_57310550/article/details/123139322

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有