概述

把程序运行的信息记录到文件中,方便程序员定位Bug,并了解程序的执行情况。

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

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

日志框架

日志技术_System

日志技术_System_02

(1)配置文件,将下面三个jar包导入到库

日志技术_System_03

(2)将Logback框架的核心文件logback.xml直接拷贝到src目录下

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <!-- CONSOLE:表示当前的日志信息是可以输出到控制台的。 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 修改输出对象 默认System.out 改为 System.err -->
        <target>System.out</target>
        <encoder>
            <!-- %d 表示日期,%thread 表示线程名,%-5level 显示5个字符宽度,%msg 日志消息,%n 是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %c [%thread] : %msg%n</pattern>
        </encoder>
    </appender>

    <!-- File 是输出的方向指向文件内 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <!-- 日志输出路径 -->
        <file>D:/java/rizhi/test.log</file>
        <!-- 指定日志文件拆分和压缩规则 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 通过指定压缩文件名,来确定分割文件方式 -->
            <fileNamePattern>D:/java/rizhi/test.log-%d{yyyy-MM-dd}.log%i.gz</fileNamePattern>
            <!-- 文件的最大大小 -->
            <maxFileSize>1MB</maxFileSize>
        </rollingPolicy>
    </appender>

    <!--
        1. 设置日志级别。
        2. 指定日志输出位置。
     -->
    <root level="ALL">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>

</configuration>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.

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

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class test {
    // 创建一个Logger日志对象
    public static final Logger LOGGER = LoggerFactory.getLogger("LogBackTest");

    public static void main(String[] args) {
        try {
            LOGGER.info("chu方法开始执行啦~~~");
            chu(10, 0);
            LOGGER.info("chu方法执行成功~~~");
        } catch (Exception e) {
            LOGGER.error("chu方法执行失败了, 出现了bug~~~", e);
        }
    }

    public static void chu(int a, int b) {
        LOGGER.debug("参数a: " + a);
        LOGGER.debug("参数b: " + b);
        int c = a / b;
        LOGGER.debug("结果c: " + c);
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.

日志技术_java_04

核心配置文件logback.xml

对Logback日志框架进行控制

日志技术_xml_05

Logback设置日志级别

日志级别:日志信息的类型,日志都会分级别,常见级别如下(优先级越来越高

日志技术_System_06

优点:

(1)方便查询日志

(2)

日志技术_System_07