当前位置: 首页 > news >正文

logback日志使用

Spring Boot默认就使用Logback作为日志框架。你只需要做一些基础配置,就可以快速实现日志从控制台输出、保存到文件,甚至按日期或大小自动切割归档。

Spring Boot的起步依赖(如spring-boot-starter-web)已经自动包含了spring-boot-starter-logging,它会把Logback以及相关的SLF4J接口都带进来。所以,通常情况下,你不需要在pom.xml中专门为Logback添加任何依赖

一、引入依赖

为了更方便地在代码中记录日志,建议你添加Lombok依赖:

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional>
</dependency>

二、创建配置文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false"><!-- 定义一些常用变量,方便后面引用 --><property name="log.path" value="./logs" /><property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" /><!-- 从Spring配置中读取应用名 --><springProperty scope="context" name="APP_NAME" source="spring.application.name" defaultValue="app"/><!-- 1. 控制台输出 --><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><!-- 控制台可以使用彩色日志(需要IDE或终端支持) --><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %green([%thread]) %highlight(%-5level) %cyan(%logger{36}) - %msg%n</pattern><charset>UTF-8</charset></encoder></appender><!-- 2. 文件输出:使用RollingFileAppender实现滚动记录 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 当前正在写入的日志文件 --><file>${log.path}/${APP_NAME}.log</file><!-- 滚动策略:基于时间和文件大小 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!-- 归档文件的命名格式:按日期和索引 --><fileNamePattern>${log.path}/archive/${APP_NAME}-v${APP_VERSION}.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern><!-- 单个日志文件最大大小 --><maxFileSize>10MB</maxFileSize><!-- 最多保留30天的日志文件 --><maxHistory>30</maxHistory><!-- 所有归档日志的总大小上限 --><totalSizeCap>1GB</totalSizeCap></rollingPolicy><encoder><pattern>${log.pattern}</pattern><charset>UTF-8</charset></encoder></appender><!-- 根日志级别,关联上面定义的两个appender --><root level="INFO"><appender-ref ref="CONSOLE" /><appender-ref ref="FILE" /></root><!-- 为特定包指定日志级别,方便调试,可以不要 --><logger name="com.example.yourpackage" level="DEBUG" additivity="false"><appender-ref ref="FILE" /></logger>
</configuration>

 

三、代码中使用

@RestController
@Slf4j
@Api(value = "用户管理", description = "用户管理API")
public class UserController {@GetMapping("/test")public String testLog() {log.trace("======= Trace");log.debug("======= Debug");log.info("======= Info");log.warn("======= Warn");log.error("======= Error");return "日志已打印,请检查控制台和日志文件。";}}

四、查看效果

image

image

每次切割日志会把user.log日志文件内容切割掉,存档为压缩文件,压缩文件省空间一点,并且user.log日志里边有启动日志。

 

 

 

http://www.jsqmd.com/news/487574/

相关文章:

  • Leather Dress Collection实操手册:12个LoRA模型大小/适用场景/提示词组合全解析
  • 新手入门:零基础驾驭cmd?让AI成为你的命令行私人教练
  • 从零构建RK3568嵌入式开发环境:交叉编译与Qt部署实战
  • 致又一次春和景明
  • 基于RK3588的嵌入式Linux系统开发(五)——RKDevTool工具的高级配置与镜像烧录优化
  • 绝地求生自动化配置文件:从入门到精通的场景化实践指南
  • Z-Image-Turbo-rinaiqiao-huiyewunv镜像部署:NVIDIA NGC容器镜像同步与私有Registry托管
  • AMP算法实战:如何用Adversarial Motion Priors打造更自然的游戏角色动作
  • Qwen3-VL-8B结合RPA流程自动化:实现图形界面操作智能决策
  • EVA-02模型处理多轮对话的连贯性与上下文记忆效果展示
  • 告别手动整理,用快马生成openclaw智能脚本,自动化管理项目文件效率翻倍
  • IGS精密星历分类与性能解析:从最终到超快速
  • 5分钟搞定MinIO存储桶操作:从创建到删除的Java代码全解析
  • 基于BGE Reranker-v2-m3的智能简历筛选系统
  • 用Python绘制伽马函数图像:从数学公式到可视化实战(附完整代码)
  • LingBot-Depth部署案例:边缘设备(Jetson Orin)上的轻量化适配实践
  • 51单片机实战指南:定时器中断配置与精准时间控制
  • FRCRN(damo/speech_frcrn_ans_cirm_16k)GPU算力优化实践:batch_size与latency平衡策略
  • 低代码平台如何助力AI原生应用快速开发?
  • 解决Outlook或Foxmail邮件退信:PR_INTERNET_REFERENCES属性过大问题
  • 逻辑运算详解:AND OR NOT XOR
  • 【BUUCTF】CTF_Crypto 密码学_Quoted-printable编码原理与实战解析
  • LiPo电池智能平衡放电器设计与实现
  • 二十三、 梁山派GD32F470 I2C协议详解与硬件实现指南
  • MinerU实战案例:快速构建智能文档助手,处理扫描件如此轻松
  • OneAPI API网关模型服务治理:熔断/限流/降级/重试/超时五位一体保障
  • TopologyPRM vs RRT*:路径规划算法选型指南(附Fast-Planner实测数据)
  • AI数字人视频去背景实战:用JavaScript+Canvas实现绿幕抠像(附跨域解决方案)
  • 百川2-13B模型快速部署:Git版本控制与团队协作配置教程
  • 肝癌造模技术全解析:从化学诱导到基因编辑