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

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

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: 12306
  servlet:
      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.kler.cn/a/584432.html

相关文章:

  • 深入解析 React 最新特性:革新、应用与最佳实践
  • 若依框架二次开发——若依微服务打包时如何分离 JAR 包和资源文件
  • 基于传统算法的半导体晶圆缺陷检测原理及代码(二)
  • Spring中的配置文件参数化与类型转换器实现详解
  • Maven 构建 项目测试
  • Qt常用控件之垂直布局QVBoxLayout
  • Leetcode9-回文数
  • 解决:外部调用存储过程时突然变慢,但是在sql server运行很快
  • ChromeOS 134 版本更新
  • 专业视角:set 和 multiset的原理与应用解析
  • (2025|ICLR|厦大华为,LoSA,基于表示互信息的动态层级稀疏率,基于重构误差的秩分配)LLM 的动态低秩稀疏自适应
  • SQL Server数据库基于SQL性能优化
  • 迪威 3D 模型发布系统:制造业产品展示革新利器
  • 批量给 Excel 添加或删除密码保护|Excel 批量设置打开密码和只读密码
  • 【3dmax笔记】008:选择工具
  • 数字隔离器,如何提升储能系统的安全与效能?
  • k8s集群中部署dcgm-exporter收集GPU指标
  • 5-27 临摹大师-IP-Adapter
  • 【Docker项目实战】使用Docker与Caddy部署BanBan任务管理工具
  • 如何搭建一个适配微信小程序,h5,app的uni-app项目