SpringBoot3+Lombok如何配置logback输出日志到文件

devtools/2025/3/15 0:50:43/

Background/Requirement

SpringBoot3+Lombok如何配置logback输出日志到文件,因为我需要对这些日志进行输出,控制台输出和文件输出,文件输出是为了更好的作为AuditLog且支持滚动式备份,每天一个文件。

Technical Solution

1.确保你使用了Lombok且使用 Lombok 的 @Slf4j 注解

在你的 Java 类中,使用 Lombok 提供的 @Slf4j 注解来简化日志操作。例如:

import lombok.extern.slf4j.Slf4j;@Slf4j
public class MyService {public void doSomething() {log.info("This is an info message");log.debug("This is a debug message");}
}

2.在项目的 src/main/resources 目录下创建或修改 logback-{env}.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false"><!-- Powered by https://zhengkai.blog.csdn.net/ --><!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--><property name="LOG_HOME" value="D:\Workspace\Project\ServerRemoteExecution\logs"/><property name="APP_ENV" value="dev"/><property name="LOG_NAME" value="SRE-AUDIT"/><!-- 控制台输出 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--><!--            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %boldMagenta(%-5level %logger{50}) : %msg%n</pattern>--><pattern>%d{yyyy-MM-dd HH:mm:ss:SS} %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{50}) -%n%cyan(%msg%n)</pattern></encoder></appender><!-- 按照每天生成日志文件 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/${LOG_NAME}-${APP_ENV}.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--日志文件输出的文件名--><FileNamePattern>${LOG_HOME}/${LOG_NAME}-${APP_ENV}_%d{yyyy-MM-dd}.log</FileNamePattern><!--日志文件保留天数--><MaxHistory>90</MaxHistory></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern></encoder><!--日志文件最大的大小--><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><MaxFileSize>50MB</MaxFileSize></triggeringPolicy></appender><!-- 日志输出级别 --><root level="INFO"><appender-ref ref="STDOUT"/><appender-ref ref="FILE"/></root>
</configuration>

3.确保你的application-{env}文件中正确引用这个logging config

server:port: 12306servlet:context-path: /sre
aes:secret-key: SRE12306
logging:config: classpath:logback-dev.xml

4.启动并检查是否生效

如果你的项目配置不正确,或者日志路径无效(或没权限),则无法启动,请注意!!!

 5.开源项目参考

如果你还不知道怎么配置,可以参考我的开源项目 Server Remote Execution(SRE)

https://github.com/moshowgame/ServerRemoteExecution/https://github.com/moshowgame/ServerRemoteExecution/

ServerRemoteExecution: Server Remote Execution(SRE),基于SpringBoot3的服务器远程维护工具,支持远程目录查看,专业日志目录查看器模式,文本浏览器查看文件,下载文件等操作,也支持远程执行白名单的powershell命令,web容器为Undertow(非默认tomcat),其他的请自行添加和配置。


http://www.ppmy.cn/devtools/167160.html

相关文章

Python 入门教程(2)搭建环境 2.4、VSCode配置Node.js运行环境

文章目录 一、VSCode配置Node.js运行环境 1、软件安装2、安装Node.js插件3、配置VSCode4、创建并运行Node.js文件5、调试Node.js代码 一、VSCode配置Node.js运行环境 1、软件安装 安装下面的软件&#xff1a; 安装Node.js&#xff1a;Node.js官网 下载Node.js安装包。建议选…

如何利用Python爬虫获取微店商品详情数据:实战指南

微店作为知名的电商平台&#xff0c;提供了丰富的商品资源。通过Python爬虫技术&#xff0c;可以高效地获取微店商品的详情数据&#xff0c;用于数据分析、研究或其他用途。本文将详细介绍如何使用Python编写爬虫程序&#xff0c;获取微店商品的详情数据&#xff0c;并确保爬虫…

Smart contract -- 工厂合约

在区块链开发领域&#xff0c;Solidity 语言以其强大的功能和灵活性&#xff0c;为开发者提供了构建复杂智能合约系统的可能性。其中&#xff0c;工厂合约模式是一种常见的设计模式&#xff0c;它能够高效地创建和管理多个具有相似功能的合约实例。本文将通过一个具体的代码示例…

【Linux】:进程间通信

进程间通信目的 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程 资源共享&#xff1a;多个进程之间共享同样的资源。 通知事件&#xff1a;一个进程需要向另一个或一组进程发送消息&#xff0c;通知它&#xff08;它们&#xff09;发生了某种事件&#xff08;如…

深度学习项目--基于DenseNet网络的“乳腺癌图像识别”,准确率90%+,pytorch复现

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 前言 如果说最经典的神经网络&#xff0c;ResNet肯定是一个&#xff0c;从ResNet发布后&#xff0c;很多人做了修改&#xff0c;denseNet网络无疑是最成功的…

使用 Golang 操作 MySQL

在Go语言中&#xff0c;操作SQL数据库&#xff0c;通常会用到一些第三方库来简化数据库的连接、查询和操作过程。其中原生的 database/sql go-sql-driver/mysql 库更符合sql语句使用习惯。‌ 安装 go get github.com/go-sql-driver/mysql 直接上代码来演示基本的创建&#xff…

CODESYS RTE之安装及使用的注意事项

1、安装时的注意事项 安装的CODESYS RTE版本在3.5.20及以上时&#xff0c;选择Control RTE&#xff08;下图红框&#xff09;&#xff0c;无论是运动控制还是点位控制均可&#xff0c;否则操作和使用时会很有苦难言。有咨询官方客服&#xff0c;本作者也曾受其困扰了一段时间。…

江科大51单片机笔记【14】LCD1602(上)

写在前言 此为博主自学江科大51单片机&#xff08;B站&#xff09;的笔记&#xff0c;方便后续重温知识 在后面的章节中&#xff0c;为了防止篇幅过长和易于查找&#xff0c;我把一个小节分成两部分来发&#xff0c;上章节主要是关于本节课的硬件介绍、电路图、原理图等理论…