Java:日志技术

日志技术:

可以将系统执行的信息,方便的记录到指定的位置(控制台、文件中、数据库中)。

可以随时以开关的形式控制日志的启停,无需侵入到源代码中去进行修改。

日志技术的体系结构:

Java:日志技术_第1张图片

日志框架:牛人或者第三方公司已经做好的实现代码,后来者直接可以拿去使用。

日志接口:设计日志框架的一套标准,日志框架需要实现这些接口。

JUL框架基于JCL接口

Log4j和Logback框架基于SLF4J接口

因为对CommonsLogging接口不满意,有人就搞了SLF4J;因为对Log4j的性能不满意有人就搞了Logback.

目前主流的是Logback,主要学习Logback:

Logback日志框架官网:

Logback Homeicon-default.png?t=N7T8https://logback.qos.ch/index.htmlJava:日志技术_第2张图片

所以:

大家不需要去网上下载了,这里直接附带了所需的所有内容:

链接:https://pan.baidu.com/s/1yy-dWH-hrkU_--ZLwT9pgQ?pwd=8888 
提取码:8888

Logback快速入门:

使用框架流程:

Java:日志技术_第3张图片

下载完框架后,复制如下三个jar包:

Java:日志技术_第4张图片

打开自己的项目:

如果自己项目没有lib目录,先创建一个,单击项目,右键->New->Directory,起名为lib,然后单击lib,ctrl+v复制到lib目录,然后单击lib,右键找到Add as Library,点击后再点ok即可。

然后找到我们下载的如下XML文件:

拷贝,在src目录下ctrl+v,至此,配置框架就完成了。

找到项目中的配置好的logback文件:

大致可以看出来有输出日志的相关格式:

Java:日志技术_第5张图片

并且可以将日志输出到文件中:

这个XML文件不需要我们自己写,能看懂大概就行了。

接下来演示具体的代码实现:

创建Logback框架提供的Logger对象,然后用Logger对象调用其提供的方法就可以记录系统的日志信息。(非常便捷)

package com.itheima.d3_log;

import org.slf4j.Logger;//这里要格外注意,别导错了。
import org.slf4j.LoggerFactory;

public class LogBackTest {
    //创建一个Logger日志对象,只需要一个日志对象就够了。
    public static final Logger LOGGER = LoggerFactory.getLogger("LogBackTest");

    public static void main(String[] args) {
    try {
        LOGGER.info("chu方法开始执行");//info输出信息
        chu(10,0);
        LOGGER.info("chu方法执行成功");
    }catch (Exception e){
        LOGGER.error("chu法方法执行失败了,出现了bug~~~");
    }
    }
    public static void chu(int a , int b){
        LOGGER.debug("参数a:"+ a);//记录参数
        LOGGER.debug("参数b:" + b);
        int c = a/b;
        LOGGER.info("结果是:" + c);//记录结果

    }
}

输出结果:

注意看是否保存到文件中去了:

在自己电脑上找这个路径

Java:日志技术_第6张图片

成功显示日志(这里我运行两次,所以记录两次):

Java:日志技术_第7张图片

logback核心配置文件讲解

按照控制台输出的内容一一对应,不难理解。

日志文件拆分和压缩:

Java:日志技术_第8张图片

当文件大小到1MB时就会压缩和拆分,防止一个文件中日志过多,卡死打不开。

下图是控制日志的开关:level =OFF就是关闭日志,ALL自然就是开启日志。

Java:日志技术_第9张图片

如果不想输出到控制台,把控制台那一行删去即可。

日志级别:

日记级别指的是日志信息的类型,日志都会分级别,常见级别如下(优先级依次升高):

Java:日志技术_第10张图片

例如下图:

解析:

只有日志的级别是大于或等于核心配置文件配置的日志级别,才会被记录,否则不记录。

这里只记录info、warn、error。

你可能感兴趣的:(java,java,开发语言,spring,maven,eclipse,java-ee,tomcat)