• Java日志


    在这里插入图片描述

    Java日志

    本篇主要讲述了Java日志的基础知识。

    1、概述

    • 概述

      程序中的日志可以用来记录程序在运行的时候点点滴滴,并可以进行永久存储。

    • 日志与输出语句的区别

      输出语句日志技术
      取消日志需要修改代码,灵活性比较差不需要修改代码,灵活性比较好
      输出位置只能是控制台可以将日志信息写入到文件或者数据库中
      多线程和业务代码处于一个线程中多线程方式记录日志,不影响业务代码的性能

    2、日志体系结构和logback

    • 日志体系结构
      在这里插入图片描述

    • logback

      通过使用logback,我们可以控制日志信息输送的目的地是控制台、文件等位置。

      我们也可以控制每一条日志的输出格式。

      通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。

      最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

    3、入门案例【应用】

    3.1、使用步骤
    1. 导入logback的相关jar包
    2. 编写logback配置文件
    3. 在代码中获取日志的对象
    4. 按照级别设置记录日志信息
    // 测试类
    public class Test {
    
        // 获取日志的对象
        private static  final Logger LOGGER = LoggerFactory.getLogger(Test01.class);
    
        public static void main(String[] args) {
            // 1.导入jar包
            //2.编写配置文件
            //3.在代码中获取日志的对象
            //4.按照日志级别设置日志信息
            LOGGER.debug("debug级别的日志");
            LOGGER.info("info级别的日志");
            LOGGER.warn("warn级别的日志");
            LOGGER.error("error级别的日志");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    3.2、代码示例

    logback.xml

    
    <configuration>
      
      <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
          
          <target>System.outtarget>
          <encoder>
              
              <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level]  %c [%thread] : %msg%npattern>
          encoder>
      appender>
    
      
      <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%npattern>
              <charset>utf-8charset>
          encoder>
          
          <file>C:/code/itheima-data.logfile>
          
          <rollingPolicy
                  class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
              
              <fileNamePattern>C:/code/itheima-data2-%d{yyyy-MMdd}.log%i.gzfileNamePattern>
              
              <maxFileSize>1MBmaxFileSize>
          rollingPolicy>
      appender>
    
      
      <root level="DEBUG">
          <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
    • 41
    • 42
    • 43
    • 44

    LogDemo.java

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.util.Scanner;
    
    public class  {
    
      //获取日志对象
      private static final Logger LOGGER = LoggerFactory.getLogger(LogDemo.class);
    
      public static void main(String[] args) {
          //打日志 --- 类似于写输出语句
    
          Scanner sc = new Scanner(System.in);
          System.out.println("请输入您的姓名");
          LOGGER.debug("用户开始输入信息了");
          String name = sc.nextLine();
          //System.out.println(name);
          LOGGER.info("用户输出录入姓名为:" + name);
          System.out.println("请输入您的年龄");
          String age = sc.nextLine();
          try {
              int ageInt = Integer.parseInt(age);
              LOGGER.info("用户输入的年龄格式正确" + age);
          } catch (NumberFormatException e) {
              LOGGER.info("用户输入的年龄格式错误" + age);
          }
      }
    }
    
    • 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
  • 相关阅读:
    利用CloudCompare进行点云过滤去噪(统计滤波)
    windows 的一些常见命令
    快速排序的非递归实现、归并排序的递归和非递归实现、基数排序、排序算法的时间复杂度
    芒果改进YOLOv5系列:首发结合最新NIPS2022华为诺亚的GhostNetV2 架构:长距离注意力机制增强廉价操作,打造高效轻量级检测器
    日语_和方位相关的词
    【数据挖掘】百度机器学习-数据挖掘-自然语言处理工程师 2023届校招笔试详解
    Mock.js的使用api讲解
    springBoot--web--http缓存机制测试
    浅谈IT运维-服务目录
    Go语学习笔记 - gorm使用 - 数据库配置、表新增 | Web框架Gin(七)
  • 原文地址:https://blog.csdn.net/qq_51808107/article/details/126568522