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: 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.pswp.cn/web/72089.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72089.shtml
英文地址,請注明出處:http://en.pswp.cn/web/72089.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

主流向量數據庫對比

在 AI 的 RAG&#xff08;檢索增強生成&#xff09;研發領域&#xff0c;向量數據庫是存儲和查詢向量嵌入的核心工具&#xff0c;用于支持高效的語義搜索和信息檢索。向量嵌入是文本或其他非結構化數據的數值表示&#xff0c;RAG 系統通過這些嵌入從知識庫中檢索相關信息&#…

搞定python之四----函數、lambda和模塊

本文是《搞定python》系列專欄的第四篇&#xff0c;通過代碼演示列python自定義函數、lambda和模塊的用法。本文學習完成后&#xff0c;python的基礎知識就完了。后面會學習面向對象的內容。 1、自定義函數 # 測試python自定義函數# 有參數&#xff0c;沒有返回值 def say_he…

[操作系統] 學校課程關于“靜態優先級搶占式調度“作業

今天我們來分享兩道題目哈, 學校弄得題目. T1: 靜態優先級, 搶占式(1為高優先級) 圖解: 以下是靜態優先級搶占式調度的解題過程和結果&#xff1a; 解題思路&#xff1a; 優先級規則&#xff1a; 數值越小優先級越高。新進程到達時&#xff0c;若其優先級高于當前運行進程&…

洛谷P1320 壓縮技術(續集版)

P1320 壓縮技術&#xff08;續集版&#xff09; 題目描述 設某漢字由 N N N \times N NN 的 0 \texttt 0 0 和 1 \texttt 1 1 的點陣圖案組成。 我們依照以下規則生成壓縮碼。連續一組數值&#xff1a;從漢字點陣圖案的第一行第一個符號開始計算&#xff0c;按書寫順序從…

使用DeepSeek完成一個簡單嵌入式開發

開啟DeepSeek對話 請幫我使用Altium Designer設計原理圖、PCB&#xff0c;使用keil完成代碼編寫&#xff1b;要求&#xff1a;使用stm32F103RCT6為主控芯片&#xff0c;控制3個流水燈的原理圖 這里需要注意&#xff0c;每次DeepSeek的回答都不太一樣。 DeepSeek回答 以下是使…

volatile、synchronized和Lock

名詞解釋&#xff1a; 指令重排是計算機為了優化執行效率&#xff0c;在不改變單線程程序結果的前提下&#xff0c;對代碼的執行順序進行重新排列的操作。它可能發生在編譯階段&#xff08;編譯器優化&#xff09;或CPU運行階段&#xff08;處理器優化&#xff09;。 舉個栗子…

嵌入式八股C語言---面向對象篇

面向對象與面向過程 面向過程 就是把整個業務邏輯分成多個步驟,每步或每一個功能都可以使用一個函數來實現面向對象 對象是類的實例化,此時一個類就內部有屬性和相應的方法 封裝 在C語言里實現封裝就是實現一個結構體,里面包括的成員變量和函數指針,然后在構造函數中,為結構體…

Distilling the Knowledge in a Neural Network知識蒸餾

一.知識蒸餾的定義 1. 量化VS蒸餾 量化&#xff1a;減小精度 例如參數float32—>float16蒸餾&#xff1a;Student model模仿Teacher model,在保持較高性能的同時&#xff0c;減少模型大小和計算復雜度的技術。 二.知識蒸餾步驟 1.教師模型訓練: 訓練一個大型且復雜的神…

靜態程序分析

參考&#xff1a;https://github.com/RangerNJU/Static-Program-Analysis-Book/blob/master/SUMMARY.md 課件&#xff1a;https://pascal-group.bitbucket.io/teaching.html 視頻&#xff1a;南京大學《軟件分析》課程01&#xff08;Introduction&#xff09;_嗶哩嗶哩_bilib…

Flutter_學習記錄_device_info_plus 插件獲取設備信息

引入三方庫device_info_plus導入頭文件 import package:device_info_plus/device_info_plus.dart;獲取設備信息的主要代碼 DeviceInfoPlugin deviceInfoPlugin DeviceInfoPlugin(); BaseDeviceInfo deviceInfo await deviceInfoPlugin.deviceInfo;完整案例 import package…

日有所得-google 瀏覽器離線安裝

一、目標&#xff1a; 基于UOS系統進行瀏覽器插件開發&#xff0c;目標展現形式為側欄 二、背景&#xff1a; UOS操作系統需支持1032及以上版本 瀏覽器插件基于google瀏覽器&#xff0c;自帶360等瀏覽器能兼容基于google瀏覽器開發的插件 JS庫借用Vue庫以提高效率 三、問…

高效自動化測試:打造Python+Requests+Pytest+Allure+YAML的接口測試框架

一、背景 在快節奏的開發周期中&#xff0c;如何確保接口質量&#xff1f;自動化測試是關鍵。通過構建標準化、可復用的測試框架&#xff0c;能顯著提升測試效率與準確性&#xff0c;為項目質量保駕護航[1][7]。 二、目標 ? 核心目標&#xff1a; ● 實現快速、高效的接口測試…

談談List,Set,Map的區別

List、Set 和 Map 是 Java 集合框架&#xff08;Java Collections Framework&#xff09;中的三種主要接口&#xff0c;它們各自有不同的特點和用途。以下是它們的區別和使用場景的詳細解釋&#xff1a; 1. List&#xff08;列表&#xff09; 1.1 特點 有序集合&#xff1a;Li…

智能運維管理系統的主要優勢

智能運維管理系統通過整合大數據、人工智能、機器學習等技術&#xff0c;顯著提升了IT運維的效率和質量。以下是智能運維管理系統的主要優勢&#xff1a; 一、提升運維效率 1.自動化運維 自動執行重復性任務&#xff08;如日志分析、故障排查、系統備份&#xff09;&#xf…

分享一個用來解決運維問題的 AI 提示詞

模板如下&#xff08;每次我都是自己寫的&#xff0c;但是感覺可以更加調優一些&#xff09; 我遇到了如下問題<問題的清晰描述>你是一位資深運維工程師&#xff0c;任務是指導我一步步排查并解決上面的問題排查過程中&#xff0c;你給我操作指示&#xff0c;我將操作的…

【python運行Janus-Pro-1B文生圖功能】

前言 體驗了一把本地部署Janus-Pro-1B實現文生圖功能。 1、開源項目下載 官方開源項目代碼直接從Github上下載。 2、模型下載 模型官方下載需要魔法 Janus-Pro-1B模型文件&#xff1a;Janus-Pro-1B模型文件 百度網盤&#xff1a; https://pan.baidu.com/s/16t4H4z-QZe2UDAg4…

跨越時空的對話:圖靈與GPT-4聊AI的前世今生

&#xff08;背景&#xff1a;虛擬咖啡廳&#xff0c;圖靈身著1950年代西裝&#xff0c;端著一杯熱茶&#xff0c;GPT-4以全息投影形態坐在對面&#xff09; 圖靈&#xff08;喝了口茶&#xff09;&#xff1a;“聽說你能寫詩&#xff1f;我當年在布萊切利園破解Enigma時&…

L2-4 吉利矩陣

輸入樣例&#xff1a; 7 3輸出樣例&#xff1a; 666 這道題是暴力純搜&#xff0c;但是很難想&#xff0c;我這個是看的別人的代碼 #include "bits/stdc.h" using namespace std; int x[20][20]; int l, n; int cnt 0; int sumx[5], sumy[5]; void dfs(int x, in…

Quickwit+Jaeger+Prometheus+Grafana搭建Java日志管理平臺

介紹 生產服務應用可觀測性在當下比較流行的方案&#xff0c;其中出現了大量高性能、開箱即用、易上手的的開源產品&#xff0c;大大豐富了在可觀測性領域產品的多樣性&#xff0c;本文講述基于OTLP協議推送Java項目遙測數據&#xff08;日志、指標、鏈路&#xff09;到后端存儲…

SpringMVC (一)基礎

目錄 SpringMVC 一 簡單使用 1 新建模塊選擇指定參數 2 創建實現類 3 將項目啟動 4 運行結果&#xff1a;在瀏覽器當中響應執行 二 RequestMapping 三 請求限定 SpringMVC SpringMVC是Spring的web模塊&#xff0c;用來開發Web應用&#xff0c;SpringMVC應用最終作為B/…