spring boot 日志管理

一. LogBack 日志简介
  • 常用处理java的日志组件 slf4j,log4j,logback,common-logging 等
  • logBack是在log4j基础的改良,但不能单独使用,可配合slf4j使用
  • logBack核心对象
    • Logger:日志记录器
    • Appender:指定日志输出目的地,可以是控制台或文件
    • Layout:日志布局,用于格式化日志信息的输出
  • 日志级别:debug<info<warn<error
  • Log4j日志转换为logBack在线工具(可以将log4j.properties文件内容转成logback.xml) https://logback.qos.ch/translator/
二. spring boot 默认日志格式

在这里插入图片描述从左到右依次介绍

  • 日期时间:精确到毫秒
  • 日志级别:ERROR, WARN, INFO, DEBUG
  • 进程 id
  • 分割符:用于区分实际的日志记录
  • 线程名:在方括号
  • 日志名字:通常是执行所运行的包名,类名
  • 日志信息
三. 日志文件输出
<?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">  
   		<!-- 日志级别为INFO -->
        <appender-ref ref="consoleApp"/>
        <appender-ref ref="fileInfoApp"/>
        <appender-ref ref="fileErrorApp"/>
    </root>
</configuration>
  • 代码编写测试
package cn.hp.springboot_day05.controller;

import cn.hp.springboot_day05.utils.JsonData;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/log")
public class LogController {

    private Logger logger = LoggerFactory.getLogger(Logger.class);

    @RequestMapping("/test")
    public Object test(){
        logger.error("error 级别日志");
        logger.info("info 级别日志");
        logger.debug("debug 级别日志");
        logger.warn("warn 级别日志");
        return JsonData.buildSuccess();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值