SpringBoot的配置文件以及日志設置

在使用SpringBoot開發的過程中我們通常會用到配置文件來設置配置信息

以及使用日志來進行記錄我們的操作,方便我們對錯誤的定位


配置文件的作用在于:設置端口,設置數據庫連接信息,設置日志等等?

在SpringBoot中,配置文件必須要以application作為命名,

同時在SpringBoot中有兩種配置文件格式

一種是application.properties,另一種是application.yml的格式

兩種格式的區別在于properties是SpringBoot中默認的配置文件的格式

而yml格式支持多種語言的格式

以properties格式為例子:properties存儲配置信息是以key-value的形式進行存儲的

#配置項中設置端口號
server.port = 9090#配置項中設置數據庫的連接
spring.datasource.url = jdbc:mysql//127.0.0.1:3306/java?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 8888#配置項中設置日志
logging.level.com.example.demo = debug
logging.file=d:/work/demo.log#配置項中設置對象中的屬性
student.name = tom
student.id = 1
student.gender = man

properties格式的配置文件的缺點在于不能夠支持多種語言,并且配置內容過于冗余

但是在springboot中properties的優先級是比yml要高的

而我們使用yml的形式就可以彌補properties的缺點了

#設置端口號
server:port: 9090#設置字段的內容
mystr1: 你\n好
mystr2: '你\n好'
mystr3: "你\n好"#設置對象的屬性
student:id: 1name: 張三age: 18# 日志級別的設置
logging:level:root: errorcom:example:demo:controller: tracefile:path: D:\

上面提到的設置字段的內容,我們都是可以在class類里面進行調用的

不管是使用哪種配置文件都是使用 @Value(${xxxx})注解的形式進行調用

    @Value("${mystr1}")private String str1;@Value("${mystr2}")private String str2;@Value("${mystr3}")private String str3; //"xxx\nxxx" 只有這樣才能進行換行

在yml中我們要想將字段進行換行打印就需要用到字符串以及轉義字符,否則無法進行換行輸出

我們還提到了在可以設置對象的屬性進行注入

這個時候我們就需要在實體類中使用注解

@ConfigurationProperties("xxx") <-此處的xxx為配置文件中對象名稱?

這樣就可以進行屬性注入了

@ConfigurationProperties("student")
@Controller
public class StudentController {private int id;private String name;private int age;
}

在實際開發的過程中我們通常有三個環境:開發環境、測試環境、生產環境

可能每個環境下我們的配置文件都不一樣,但是代碼是相同的

所以為了適配各個環境下的配置文件

我們可以創建一個公共的配置文件來調用不同環境下的配置環境

我們各個環境的配置文件都要以?application 開頭然后加上各自的命名

比如開發環境:application-dev.yml 測試環境application-test.yml 生產環境application-prod.yml

在公共的配置文件 application.yml中只需要輸入這段代碼就可以調用到不同的配置環境了

#設置平臺 比如此時我想設置成生產環境
spring:profiles:active: prod

講完了配置文件我們來說說日志

我們可以使用日志來進行記錄錯誤等信息,當然也可以記錄程序的執行時間以及程序的操作人等等

實際上SpringBoot中內置了日志,我們每次在啟動SpringBoot的時候都能看到一長串的日志內容

那么SpringBoot中的日志框架里面的內容可以分為:日志門面以及日志實現

日志門面就相當于是一個中間人,我們在調用日志門面以后日志門面會幫我們找到具體的日志實現的項目 ,在日志門面包括(SLF4J以及common-logging)

在日志中,日志的等級分為(從低到高進行排序):

[trace]:級別最低

[debug]?:調試的時候進行打印的內容

[info]:普通打印信息

[warn]:警告信息但不影響使用

[error]:錯誤信息影響正常使用

[fatal]:不會打印出來,直接導致程序退出

我們可以在配置文件中設置我們想要看到的日志等級,比如

#yml格式下的日志配置logging:level: #只查看error及以上的日志信息 root:error 

我們也可以設置某一個包在運行過程的日志提示,比如

#yml格式下的日志配置logging:level: #只查看error及以上的日志信息 root:error com: example: #查看controller包底下在運行過程中trace及以上的日志信息 controller: trace

?那么現在再來講講應該怎么樣使用日志

我們首先要實例化日志這個類然后再將需要打印日志的類

(比如我現在的UserController需要答應日志)

private static final Logger logger = LoggerFactory.getLogger(UserController.class);

然后就可以正常使用了

    @RequestMapping("/sayHi")public String sayHi(){logger.trace("trace");        //打印一個trace日志 日志內容是tracelogger.info("info");          //打印一個info日志 日志內容是infologger.warn("warn");          //打印一個warn日志 日志內容是warnlogger.error("error");        //打印一個error日志 日志內容是errorreturn "hello world";}

實際上我們如果調用Lombok這個框架的話

只需要加入 @Slf4j 這個注解就不需要再實例化日志對象了

然后日志對象的名稱注意 一定是 log

接下來的步驟和正常使用沒有區別

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

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

相關文章

Linux系統編程:通過System V共享內存實現進程間通信

目錄 一. 共享內存實現進程間通信的原理 二. 共享內存相關函數 2.1 共享內存的獲取 shmget / ftok 2.2 共享內存與進程地址空間相關聯 shmat 2.3 取消共享內存與進程地址空間的關聯 shmdt 2.4 刪除共享內存 shmctl 2.5 通信雙方創建共享內存代碼 三. 共享內存實現進程間…

承接各種設計

小弟985研究生畢業&#xff0c;目前攻讀讀博士&#xff0c;可做各種設計&#xff0c;包括但不限于Matlab 電力電子/電氣工程&#xff0c;matlab/simulink 電氣專業仿真MATLAB 電氣工程專業&#xff0c;matlab建模 電力電子&#xff0c;電氣工程&#xff0c;電力系統&#xff0c…

vue echarts macd指標 完整代碼

1 邏輯 給指定的series兩個對象 兩個對象有相同的xAxisIndex: 2,yAxisIndex: 2, 不同的data {name: "",type: "line",data: data1,xAxisIndex: 2,yAxisIndex: 2,},{name: "",type: "bar",data: data2,xAxisIndex: 2,yAxisIndex: 2,},…

Mac M2 Pro安裝使用Cocoapods

Mac Pro M2安裝使用Cocoapods 在新公司要做iOS開發&#xff0c;所以在新電腦上安裝Cocoapods 在升級gem&#xff0c;sudo gem update --system&#xff0c;和安裝cocoapods時都遇到如下的提示&#xff1a; ERROR: While executing gem ... (Errno::EPERM)Operation not per…

Linux下安裝nodejs

1、下載nodejs 點擊前往&#xff1a;Download | Node.js 2、解壓 tar -xvf node-v18.16.0-linux-x64.tar.xz mv node-v18.16.0-linux-x64/ /usr/local/nodejs 3、 建立軟鏈接 此時的bin文件夾中已經存在node以及npm&#xff0c;如果你進入到對應文件的中執行命令行一點問題…

現代C++:使用 shared_from_this 防止 this 提前被釋放

首先概括一下shared_from_this的作用&#xff1a;可以在類的成員函數中直接通過this得到指向當前所在對象的shared_ptr的智能指針&#xff0c;具體操作如下。 使用方法 設需要提供shared_from_this方法的類為C0定義為類&#xff0c;首先需要將C0定義為 std::enable_shared_fr…

mysql 02 數據庫的約束

為防止錯誤的數據被插入到數據表&#xff0c;MySQL中定義了一些維護數據庫完整性的規則&#xff1b;這些規則常稱為表的約束。常見約束如下&#xff1a; 主鍵約束 主鍵約束即primary key用于唯一的標識表中的每一行。被標識為主鍵的數據在表中是唯一的且其值不能為空。這點類似…

前后端分離------后端創建筆記(10)用戶修改

本文章轉載于【SpringBootVue】全網最簡單但實用的前后端分離項目實戰筆記 - 前端_大菜007的博客-CSDN博客 僅用于學習和討論&#xff0c;如有侵權請聯系 源碼&#xff1a;https://gitee.com/green_vegetables/x-admin-project.git 素材&#xff1a;https://pan.baidu.com/s/…

Spring Boot實現第一次啟動時自動初始化數據庫流程詳解

隨著互聯網的發展項目中的業務功能越來越復雜&#xff0c;有一些基礎服務我們不可避免的會去調用一些第三方的接口或者公司內其他項目中提供的服務&#xff0c;但是遠程服務的健壯性和網絡穩定性都是不可控因素。 在測試階段可能沒有什么異常情況&#xff0c;但上線后可能會出…

https證書獲取的方法及好處

我們常說的https證書其實就是ssl證書&#xff0c;眼下為網站部署https證書是保障網站安全必不可少的一步。而https證書該如何獲取呢&#xff1f;下面就簡單介紹一下https證書獲取的方法。 https證書獲取途徑有兩種&#xff1a;自己簽發和由受信任的CA機構簽發。 自己給自己簽…

全國三網優惠話費充值接口開發指南

一、文檔綜述 近期想做項目的看過來~三網&#xff08;全國移動、聯通、電信&#xff09;話費、電費充值接口能夠實現將接口接入到小程序或者app上面&#xff0c;通過接口提交號碼和金額進行充值&#xff0c;可以幫助相關人員快速完成接口對接與聯調&#xff0c;平臺用戶可以通…

設計HTML5文本

網頁文本內容豐富、形式多樣&#xff0c;通過不同的版式顯示在頁面中&#xff0c;為用戶提供最直接、最豐富的信息。HTML5新增了很多文本標簽&#xff0c;它們都有特殊的語義&#xff0c;正確使用這些標簽&#xff0c;可以讓網頁文本更嚴謹、更符合語義。 1、通用文本 1.1、標…

算法競賽備賽之搜索與圖論訓練提升,暑期集訓營培訓

目錄 1.DFS和BFS 1.1.DFS深度優先搜索 1.2.BFS廣度優先搜索 2.樹與圖的遍歷&#xff1a;拓撲排序 3.最短路 3.1.迪杰斯特拉算法 3.2.貝爾曼算法 3.3.SPFA算法 3.4.多源匯最短路Floy算法 4.最小生成樹 4.1.普利姆算法 4.2.克魯斯卡爾算法 5.二分圖&#xff1a;染色法…

7. CSS(四)

目錄 一、浮動 &#xff08;一&#xff09;傳統網頁布局的三種方式 &#xff08;二&#xff09;標準流&#xff08;普通流/文檔流&#xff09; &#xff08;三&#xff09;為什么需要浮動&#xff1f; &#xff08;四&#xff09;什么是浮動 &#xff08;五&#xff09;浮…

OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農 ; 碼農:我自己「殺」自己

目錄 前言 OpenAI招了一千多名外包人員&#xff0c;訓練AI學會像人類一樣一步步思考。如果ChatGPT「學成歸來」&#xff0c;碼農恐怕真的危了&#xff1f; 碼農真的危了&#xff01; 當時OpenAI也說&#xff0c;ChatGPT最合適的定位&#xff0c;應該是編碼輔助工具。 用Cha…

常用的Elasticsearch查詢DSL

1.基本查詢 GET /index_name/_search {"query": {"match": {"dispatchClass": "1"}} }2.多條件查詢 GET /index_name/_search {"query": {"bool": {"must": [{"match": {"createUser&…

計算機競賽 opencv 圖像識別 指紋識別 - python

0 前言 &#x1f525; 優質競賽項目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于機器視覺的指紋識別系統 &#x1f947;學長這里給一個題目綜合評分(每項滿分5分) 難度系數&#xff1a;3分工作量&#xff1a;3分創新點&#xff1a;4分 該項目較為新穎&#xff0c;適…

Vue引入Echarts報錯 import * as echarts from “echarts“;

項目場景&#xff1a; 已經下載好echarts cnpm i echarts Vue引入Echarts import echarts from echarts mounted() {this.myChart echarts.init(document.querySelector(.right))this.myChart.setOption({title: {text: 消費列表,left: center},...問題描述 原因分析&#…

【100天精通python】Day38:GUI界面編程_PyQT從入門到實戰(中)

目錄 專欄導讀 4 數據庫操作 4.1 連接數據庫 4.2 執行 SQL 查詢和更新&#xff1a; 4.3 使用模型和視圖顯示數據 5 多線程編程 5.1 多線程編程的概念和優勢 5.2 在 PyQt 中使用多線程 5.3 處理多線程間的同步和通信問題 5.3.1 信號槽機制 5.3.2 線程安全的數據訪問 Q…

日常BUG——通過命令行創建vue項目報錯

&#x1f61c;作 者&#xff1a;是江迪呀??本文關鍵詞&#xff1a;日常BUG、BUG、問題分析??每日 一言 &#xff1a;存在錯誤說明你在進步&#xff01; 一、問題描述 在使用vue命令行創建一個vue項目時&#xff0c;出現一下的錯誤&#xff1a; vue create my…