【Spring Boot 2.0学习之旅-11】Logback日志框架介绍和SpringBoot整合实战

第十一章 Logback日志框架介绍和SpringBoot整合实战

11-1 新日志框架LogBack介绍

简介:日志介绍和新日志框架Logback讲解

1.常用处理java的日志组件 slf4j,log4j,logback,common-logging 等

2、logback介绍:基于Log4j基础上大量改良,不能单独使用,推荐配合日志框架SLF4J来使用
	logback当前分成三个模块:logback-core,logback-classic和logback-access;
	logback-core是其它两个模块的基础模块

3、Logback的核心对象:
	Logger:日志记录器
	Appender:指定日志输出的目的地,目的地可以是控制台,文件
	Layout:日志布局 格式化日志信息的输出
4、日志级别:DEBUG < INFO < WARN < ERROR

	===========log4j示例===========		
	 ### 设置###
	log4j.rootLogger = debug,stdout,D,E

	### 输出信息到控制抬 ###
	log4j.appender.stdout = org.apache.log4j.ConsoleAppender
	log4j.appender.stdout.Target = System.out
	log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
	log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

	### 输出DEBUG 级别以上的日志到=D://logs/error.log ###
	log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
	log4j.appender.D.File = D://logs/log.log
	log4j.appender.D.Append = true
	log4j.appender.D.Threshold = DEBUG 
	log4j.appender.D.layout = org.apache.log4j.PatternLayout
	log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

	### 输出ERROR 级别以上的日志到=D://logs/error.log ###
	log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
	log4j.appender.E.File =E://logs/error.log 
	log4j.appender.E.Append = true
	log4j.appender.E.Threshold = ERROR 
	log4j.appender.E.layout = org.apache.log4j.PatternLayout
	log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n 

	===========logback============

4、Log4j日志转换为logback在线工具(支持log4j.properties转换为logback.xml,不支持 log4j.xml转换为logback.xml)
 https://logback.qos.ch/translator/

11-2 SpringBoot2.x日志讲解和自定义Logback配置实战

Logging日志

1.Log日志格式化

The default log output from Spring Boot resembles the following example:

在这里插入图片描述

2.SpringBoot整合Logback日志

在resources下添加logback-spring.xml文件

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

	 <appender name="consoleApp" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
            </pattern>
        </layout>
    </appender>

    <appender name="fileInfoApp" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <level>ERROR</level>
            <onMatch>DENY</onMatch>
            <onMismatch>ACCEPT</onMismatch>
        </filter>
        <encoder>
            <pattern>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
            </pattern>
        </encoder>
        <!-- 滚动策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 路径 -->
            <fileNamePattern>app_log/log/app.info.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <appender name="fileErrorApp" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
            </pattern>
        </encoder>
        
        <!-- 设置滚动策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 路径 -->
            <fileNamePattern>app_log/log/app.err.%d.log</fileNamePattern>
            
            <!-- 控制保留的归档文件的最大数量,超出数量就删除旧文件,假设设置每个月滚动,
            且<maxHistory>1,则只保存最近1个月的文件,删除之前的旧文件 -->
             <MaxHistory>1</MaxHistory>
            
        </rollingPolicy>
    </appender>
   <root level="INFO">  
        <appender-ref ref="consoleApp"/>
        <appender-ref ref="fileInfoApp"/>
        <appender-ref ref="fileErrorApp"/>
    </root>
</configuration>

在controller下使用

package com.lcz.spring_demo16.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author : codingchao
 * @date : 2021-11-26 14:39
 * @Description:
 **/

@RestController
@RequestMapping("/api/v1")
public class UserController {
    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @GetMapping("log")
    public Object testLog(){
        logger.debug("this is debug level");
        logger.info("this is info level ");
        logger.warn("this is warn level ");
        logger.error("this is error level");
        return "success";
    }

}

使用情况:

在这里插入图片描述

简介:讲解SpringBoot2.x整合Logback配置实战

	1、官网介绍:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#boot-features-logging

	   各个组件案例:https://logback.qos.ch/manual/index.html
	
	2、分析SpringBoot启动日志
		1)默认情况下,Spring Boot将日志输出到控制台

	3、整合Logback实战
		1)创建 日志文件logback-spring.xml,官方推荐 -spring.xml结尾
			默认加载加载配置顺序 logback-spring.xml, logback-spring.groovy, logback.xml, or logback.groovy
		
		注释:
			<configuration> 子节点
			<appender></appender>   					
			<logger></logger>
			<root></root>(要加在最后)		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mind_programmonkey

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值