項目日志配置模板示例

1.新增application.properties配置

logging.config=classpath:logback-spring.xml
spring.profiles.active=dev

將項目部署到服務器時需要將dev修改為test后再進行打包部署

2.新增logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration  scan="true" scanPeriod="60 seconds" debug="false"><springProfile name="dev"><!--輸出到控制臺--><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n%ex</pattern></encoder></appender><root level="info"><appender-ref ref="console" /></root></springProfile><springProfile name="prod,test"><!--ERROR級別的日志放在logErrorDir目錄下,INFO級別的日志放在logInfoDir目錄下--><property name="logback.logErrorDir" value="/root/lottery-system/logs/error"/><property name="logback.logInfoDir" value="/root/lottery-system/logs/info"/><property name="logback.appName" value="lotterySystem"/><contextName>${logback.appName}</contextName><!--ERROR級別的日志配置如下--><appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender"><!--日志名稱,如果沒有File 屬性,那么只會使用FileNamePattern的文件路徑規則如果同時有<File>和<FileNamePattern>,那么當天日志是<File>,明天會自動把今天的日志改名為今天的日期。即,<File> 的日志都是當天的。--><File>${logback.logErrorDir}/error.log</File><!-- 日志level過濾器,保證error.***.log中只記錄ERROR級別的日志--><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><!--滾動策略,按照時間滾動 TimeBasedRollingPolicy--><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--文件路徑,定義了日志的切分方式——把每一天的日志歸檔到一個文件中,以防止日志填滿整個磁盤空間--><FileNamePattern>${logback.logErrorDir}/error.%d{yyyy-MM-dd}.log</FileNamePattern><!--只保留最近14天的日志--><maxHistory>14</maxHistory><!--用來指定日志文件的上限大小,那么到了這個值,就會刪除舊的日志--><!--<totalSizeCap>1GB</totalSizeCap>--></rollingPolicy><!--日志輸出編碼格式化--><encoder><charset>UTF-8</charset><pattern>%d [%thread] %-5level %logger{36} %line - %msg%n%ex</pattern></encoder></appender><!--INFO級別的日志配置如下--><appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender"><!--日志名稱,如果沒有File 屬性,那么只會使用FileNamePattern的文件路徑規則如果同時有<File>和<FileNamePattern>,那么當天日志是<File>,明天會自動把今天的日志改名為今天的日期。即,<File> 的日志都是當天的。--><File>${logback.logInfoDir}/info.log</File><!--自定義過濾器,保證info.***.log中只打印INFO級別的日志, 填寫全限定路徑--><filter class="org.example.lotterysystem.common.filter.InfoLevelFilter"/><!--滾動策略,按照時間滾動 TimeBasedRollingPolicy--><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--文件路徑,定義了日志的切分方式——把每一天的日志歸檔到一個文件中,以防止日志填滿整個磁盤空間--><FileNamePattern>${logback.logInfoDir}/info.%d{yyyy-MM-dd}.log</FileNamePattern><!--只保留最近14天的日志--><maxHistory>14</maxHistory><!--用來指定日志文件的上限大小,那么到了這個值,就會刪除舊的日志--><!--<totalSizeCap>1GB</totalSizeCap>--></rollingPolicy><!--日志輸出編碼格式化--><encoder><charset>UTF-8</charset><pattern>%d [%thread] %-5level %logger{36} %line - %msg%n%ex</pattern></encoder></appender><root level="info"><appender-ref ref="fileErrorLog" /><appender-ref ref="fileInfoLog"/></root></springProfile>
</configuration>

配置Info級別日志的時候需要將<filter>中的類路徑修改為對應的路徑

3.自定義過濾器(目的是過濾出Info級別日志)

InfoLevelFilter.java

package org.example.lotterysystem.common.filter;import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.filter.Filter;
import ch.qos.logback.core.spi.FilterReply;public class InfoLevelFilter extends Filter<ILoggingEvent> {@Overridepublic FilterReply decide(ILoggingEvent iLoggingEvent) {if (iLoggingEvent.getLevel().toInt() == Level.INFO.toInt()){return FilterReply.ACCEPT;}return FilterReply.DENY;}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/76557.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76557.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/76557.shtml

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

相關文章

2025年第十八屆“認證杯”數學中國數學建模網絡挑戰賽【BC題】完整版+代碼+結果

# 問題一&#xff1a;隨機森林回歸from sklearn.ensemble import RandomForestRegressormodel_rf RandomForestRegressor()model_rf.fit(X_train, y_train)# 問題二&#xff1a;LSTM時間序列預測from tensorflow.keras.models import Sequentialmodel_lstm Sequential()model…

C語言實現TcpDump

一、 在 C 語言中實現 TCP 抓包功能&#xff0c;通常可以使用 libpcap 庫。libpcap 是一個廣泛使用的網絡抓包庫&#xff0c;它提供了捕獲網絡數據包的接口。 libpcap 是一個廣泛使用的 C 語言庫&#xff0c;用于捕獲和過濾網絡數據包。它提供了一個通用接口&#xff0c;用于訪…

Spark-Core編程

sortByKey算子&#xff1a;對(K, V)型RDD按key排序&#xff0c;K需實現Ordered接口&#xff0c;可指定升序或降序及分區數。 join算子&#xff1a;連接兩個(K, V)和(K, W)型RDD&#xff0c;返回(K, (V, W))型RDD 。 leftOuterJoin算子&#xff1a;類似SQL左外連接&#xff0c;返…

閱讀MySQL實戰45講第9天

目錄 一、你的 SQL 語句為什么變“慢” 二、什么情況會引發數據庫的 flush 過程&#xff1f; 三、分析上面四種場景對性能的影響 四、InnoDB 刷臟頁的控制策略 五、原作者小結&#xff1a; 引言&#xff1a; 一條 SQL 語句&#xff0c;正常執行的時候特別快&#xff0c;但是有時…

cin,cin.get(),getchar(),getline(),cin.get line()異同點

文章目錄 1.cin2.cin.get()3.getchar()4.cin.getline()5.getline() 1.cin &#xff08;1&#xff09;cin>>等價于cin.operator>>()&#xff0c;即調用成員函數operator>>()進行讀取數據。 &#xff08;2&#xff09;當cin>>從緩沖區中讀取數據時&…

VMware虛擬機Ubuntu磁盤擴容

VMware中操作&#xff1a; 選擇要擴容的虛擬機&#xff0c;點擊編輯虛擬機設置 打開后點擊磁盤——>點擊擴展&#xff08;注意&#xff1a;如果想要擴容的話需要刪除快照&#xff09; 調整到你想要的容量 點擊上圖的擴展——>確定 然后我們進到虛擬機里面 首先&#…

卷積神經網絡(CNN)可視化網站匯總

深度學習 文章目錄 深度學習前言CNN ExplainerDeep Learning PlaygroundConvNetJSUnderstanding CNN with Interactive Visualizations3Blue1Brown Neural Networks YouTube PlaylistDistill.pubTensorFlow CNN Visualization (TensorBoard)NN-SVGOpenAI Microscope 前言 匯總…

實習技能記錄【3】-----Git操作

1. Git是什么 Git 是一個分布式版本控制系統 (Distributed Version Control System, DVCS)。 它的核心目標是跟蹤文件的變化&#xff0c;讓你能夠隨時記錄、回溯、協作和管理你的項目。 2. 介紹 2.1 Git 工作區、暫存區、本地倉庫介紹 區域名稱英文名說明相關命令工作區Wor…

藍橋杯單片機刷題——按鍵設置當前采集距離為距離參數

設計要求 驅動超聲波傳感器&#xff0c;啟動距離測量功能,并將其結果顯示到數碼管上。 按鍵“S5”定義為參數按鍵&#xff0c;按下S5按鍵&#xff0c;設備自動將當前采集的距離數據作為距離參數&#xff1b; 若測量的距離數據超過距離參數&#xff0c;指示燈L1點亮&#xff…

KV Cache大模型推理加速功能

KV Cache KV Cache是大模型標配的推理加速功能&#xff0c;也是推理過程中&#xff0c;顯存資源巨大開銷的元兇之一。在模型推理時&#xff0c;KV Cache在顯存占用量可達30%以上。 目前大部分針對KV Cache的優化工作&#xff0c;主要集中在工程上。比如著名的VLLM&#xff0c…

Windows 圖形顯示驅動開發-WDDM 2.0功能_上下文監視

功能概述 上下文監視機制是GPU與CPU協同計算的核心同步技術&#xff0c;通過受監視圍欄&#xff08;Monitored Fence&#xff09;實現跨硬件單元的高效協調。其核心目標是解決以下場景的同步需求&#xff1a; GPU引擎間同步&#xff1a;例如在多渲染管線中&#xff0c;后處理…

基于YOLOv8的機場跑道異物檢測識別系統:提升航空安全的新一代解決方案(主頁有源碼)

?個人主頁歡迎您的訪問 ?期待您的三連 ? ?個人主頁歡迎您的訪問 ?期待您的三連 ? ?個人主頁歡迎您的訪問 ?期待您的三連? ??? ????????? ?? 1. 機場跑道異物檢測領域概述 機場跑道異物(Foreign Object Debris, FOD)是指存在于機場跑道、滑行道等關…

網絡協議學習

最近在適配ESP32的網絡驅動&#xff0c;借此機會先學習一下網絡通信協議。 以太網幀、IP包及TCP與UDP的報文格式一文讀懂網絡報問中的檢驗和&#xff08;checksum&#xff09;—— 原理舉例代碼 提問騰訊元寶提示詞&#xff1a; TCP窗口是干什么的擁塞窗口是什么的

fit 轉 gpx

新增 fit 轉 gpx 功能 https://fittools.cc/home/fit2gpx

C++ I/O 性能優化指南

在高性能計算和大規模數據處理中&#xff0c;I/O 性能優化是提升系統整體效率的關鍵環節。C 作為一種高性能編程語言&#xff0c;提供了豐富的工具和機制來優化 I/O 操作。本文將詳細介紹在 Linux 環境下&#xff0c;如何通過代碼層面的優化、系統調用的選擇以及多線程技術等手…

Python中內置的數據結構類型詳析(內置數據容器)

目錄 1. 元組&#xff08;Tuple&#xff09;??2. 列表&#xff08;List&#xff09;?3. 字典&#xff08;Dict&#xff09;4. 集合&#xff08;Set&#xff09;??5. 字符串&#xff08;Str&#xff09;6. 隊列&#xff08;Queue&#xff09;與棧&#xff08;Stack&#xf…

Socket多路復用網絡編程應用總結

Socket多路復用網絡編程應用總結 概述 ? 傳統I/O模型的局限性&#xff1a;傳統阻塞式I/O模型每次僅在一個文件描述符&#xff08;File Descriptor, FD&#xff09;上執行I/O操作&#xff0c;導致程序需等待單個操作完成&#xff0c;無法高效處理多連接場景&#xff08;如高并…

安卓開發提示Android Gradle plugin錯誤

The project is using an incompatible version (AGP 8.9.1) of the Android Gradle plugin. Latest supported version is AGP 8.8.0-alpha05 See Android Studio & AGP compatibility options. 改模塊級 build.gradle&#xff08;如果有獨立配置&#xff09;&#xff1a;…

【C++初階】--- vector容器功能模擬實現

1.什么是vector&#xff1f; 在 C 里&#xff0c;std::vector 是標準模板庫&#xff08;STL&#xff09;提供的一個非常實用的容器類&#xff0c;它可以看作是動態數組 2.成員變量 iterator _start;&#xff1a;指向 vector 中第一個元素的指針。 iterator _finish;&#x…

分布式鎖在秒殺場景中的Python實現與CAP權衡

目錄 一、分布式鎖的前世今生 二、秒殺系統的 “硬核” 挑戰 三、Python 實現分布式鎖的 “實戰演練” Redis 實現:快準狠 ZooKeeper 實現:穩如老狗 數據庫實現:老實本分 四、CAP 理論的 “三角戀” 五、性能優化的 “錦囊妙計” 鎖粒度控制:粗細有道 超時機制:別…