Skip to content
小鹏的Notes
Main Navigation 首页 笔记汇总
📱 3D翻盖手机
🎬 Siena Film
✨ 设计动效
🎲 疯狂 3D 游戏库
Github仓库 留言板 说说
黑马八股
小林Coding
导航网站
电脑截屏工具Snipaste
PDF工具
编辑图片
ip解析
电脑屏幕检测
文件格式转换

深浅模式

Sidebar Navigation

自我介绍

👨「代码炼金术士」

🌍「诗的浪漫极客」

Java基础学习

Java基础知识

Java集合

IO流

多线程

File文件

异常

网络编程

注解

Stream流

log日志

XML

反射和动态代理

方法引用

单元测试

类加载器

Java后端

JavaWeb SpringBoot 学习

苍穹外卖

微服务

SpringCloud学习

RabbitMQ

Nacos源码分析

Sentinel源码分析

Linux学习

Linux学习

Git学习

Git学习

Docker学习

Docker学习

中间件

ElasticSearch

RabbitMQ

数据库学习

Mysql学习-汇总

Mysql学习-基础篇

Mysql学习-高级篇

Mysql学习-运维篇

中间件学习

MybatisPlus学习

待续...

前端学习

Vue学习

HTML+CSS+移动端

目录

Log日志 ​

更新: 2025/4/9 字数: 0 字 时长: 0 分钟

一、日志技术的概述 ​

更新: 2025/4/9 字数: 0 字 时长: 0 分钟

1、引入 ​

image-20250321220857809

image-20250321221001730

2、日志技术的优势 ​

image-20250321221046349

3、小结 ​

image-20250321221149776

二、日志技术的体系 ​

更新: 2025/4/9 字数: 0 字 时长: 0 分钟

image-20250321221719202

image-20250321221609153

image-20250321221705114

三、Logback概述 ​

更新: 2025/4/9 字数: 0 字 时长: 0 分钟

https://logback.qos.ch/index.html

image-20250321222001398

image-20250321222029030

四、Logback快速入门 ​

更新: 2025/4/9 字数: 0 字 时长: 0 分钟

image-20250321222443359

1、导入jar包 ​

​ 不是java的,也不是自己写的,是第三方提供的代码,所以我们要导入jar包。

  • 把第三方的代码导入到当前的项目当中

    • 新建lib文件夹,把jar粘贴到lib文件夹当中,全选后右键点击选择add as a ....
    • 检测导入成功:导入成功后jar包可以展开。在项目重构界面可以看到导入的内容
  • 把配置文件粘贴到src文件夹下

  • 在代码中获取日志对象

  • 调用方法打印日志

2、核心配置文件-logback.xml ​

xml
<?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>C:/code/itheima-data.log</file>
        <!--指定日志文件拆分和压缩规则-->
        <rollingPolicy
                       class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--通过指定压缩文件名称,来确定分割文件方式-->
            <fileNamePattern>C:/code/itheima-data2-%d{yyyy-MMdd}.log%i.gz</fileNamePattern>
            <!--文件拆分大小-->
            <maxFileSize>1MB</maxFileSize>
        </rollingPolicy>
    </appender>

    <!--

    level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF
   , 默认debug
    <root>可以包含零个或多个<appender-ref>元素,标识这个输出位置将会被本日志级别控制。
    -->
    <root level="info">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE" />
    </root>
</configuration>

3、示例代码 ​

java
package com.pyw.a80log;

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

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

    public static void main(String[] args) {
        //2023-07-29 15:35:19.365 [DEBUG]  LogDemo1 [main] : chu方法开始执行咯~~
        //时间 什么类型日志 类名 线程:信息
        LOGGER.debug("chu方法开始执行咯~~");
        LOGGER.info("chu方法开始执行咯~~");
        chu(3,0);
    }

    public static void chu(int a, int b) {
        try {
            LOGGER.debug("参数a:" + a);
            LOGGER.debug("参数a:" + b);
            int c = a / b;
            LOGGER.info("结果是:" + c);
        } catch (Exception e){
            LOGGER.error("报错了!!!!");
        }
    }
}

五、Logback配置详解 ​

更新: 2025/4/9 字数: 0 字 时长: 0 分钟

image-20250321223355545

logback.xml

xml
<?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>C:/code/itheima-data.log</file>
        <!--指定日志文件拆分和压缩规则-->
        <rollingPolicy
                       class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--通过指定压缩文件名称,来确定分割文件方式-->
            <fileNamePattern>C:/code/itheima-data2-%d{yyyy-MMdd}.log%i.gz</fileNamePattern>
            <!--文件拆分大小-->
            <maxFileSize>1MB</maxFileSize>
        </rollingPolicy>
    </appender>

    <!--

    level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF
   , 默认debug
    <root>可以包含零个或多个<appender-ref>元素,标识这个输出位置将会被本日志级别控制。
    -->
    <root level="info">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE" />
    </root>
</configuration>

六、日志级别设置 ​

更新: 2025/4/9 字数: 0 字 时长: 0 分钟

image-20250321222947594

image-20250321223001649

image-20250321223117111

最后更新于:

Pager
上一篇 Stream流
下一篇 XML

Released under the MIT License.

Copyright © 2025 渝ICP备2025054279号