Spring Boot 日志的使用及logback.xml的使用

當前是市場上使用的日志框架有很多,比如:JUL、JCL、Jboss-logging、logback、log4j、slf4j....等等;

但是日志主要分為兩類,日志門面和日志實現兩類;日志門面可以說是日志框架的抽象層,主要實現是的日志實現類,

日志門面日志實現
JCL(Jakarta Commons Logging),SLF4J(Simple Logging Facade for Java),jboss-loggingLog4j JUL(java.util.logging) Log4j2?? Logback

Spring Boot使用日志門面:slf4j,日志實現:Logback;

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId>
</dependency>

將日志框架依賴引入后,開始使用:

Logger log=LoggerFactory.getLogger(getClass());//日志的記錄器
//日志等級:由低到高 trace<debug<info<warn<error
log.trace("trace日志。。。");
log.debug("debug日志。。。");
log.info("info日志。。。");
log.warn("warn日志。。。");
log.error("error日志....");

?但是在執行的時候,并沒有將所有打印到控制臺

?Spring Boot 默認的日志級別為:info,

打印的日志配置是可以在application.properties里面進行配置的:

//root指根路徑下面所有打印的日志級別,也可以設置某些包下面的級別,將root替換成對應包的路徑即可。 
logging.level.root=trace //將日志輸出到該目錄下面的spring.log文件中 如果兩個同時配 默認file有效
logging.path=/data///將日志輸出到指定文件中
logging.file=/data/a.log//打印到控制臺的格式
logging.pattern.console=%d{yyyy‐MM‐dd} [%thread] %‐5level %logger{50} ‐ %msg%n//輸出到文件日志的格式
logging.pattern.file=%d{yyyy‐MM‐dd} === [%thread] === %‐5level === %logger{50} ==== %msg%n

日志輸出的格式:

日志輸出格式:%d表示日期時間,%thread表示線程名,%‐5level:級別從左顯示5個字符寬度,%logger{50} 表示logger名字最長50個字符,否則按照句點分割,%msg:日志消息,%n是換行符
%d{yyyy‐MM‐dd HH:mm:ss.SSS} [%thread] %‐5level %logger{50} ‐ %msg%n

日志配置也能單獨拿出來做為一個配置文件使用:

logback.xml:該文件直接被日志框架識別,但是不能使用 springProfile 標簽

logback-spring.xml:不能直接被日志框架識別,由SpringBoot解析,支持使用 springProfile 高級功能

<?xml version="1.0" encoding="UTF-8"?>
<!--
scan:當此屬性設置為true時,配置文件如果發生改變,將會被重新加載,默認值為true。
scanPeriod:設置監測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認單位是毫秒當scan為true時,此屬性生效。默認的時間間隔為1分鐘。
debug:當此屬性設置為true時,將打印出logback內部日志信息,實時查看logback運行狀態。默認值為false。
-->
<configuration scan="false" scanPeriod="60 seconds" debug="false"><!-- 定義日志的根目錄 --><property name="LOG_HOME" value="/data/a.log" /><!-- 定義日志文件名稱 --><property name="appName" value="springboot"></property><!-- ch.qos.logback.core.ConsoleAppender 表示控制臺輸出 --><appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"><layout class="ch.qos.logback.classic.PatternLayout"><springProfile name="dev">   <!--文件名為logback-spring.xml支持,若為logback.xml 去掉該標簽直接使用 pattern 標簽--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ----> [%thread] ---> %-5level %logger{50} - %msg%n</pattern></springProfile><springProfile name="!dev"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ==== [%thread] ==== %-5level %logger{50} - %msg%n</pattern></springProfile></layout></appender><!-- 滾動記錄文件,先將日志記錄到指定文件,當符合某個條件時,將日志記錄到其他文件 --><appender name="appLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 指定日志文件的名稱 --><file>${LOG_HOME}/${appName}.log</file><!--當發生滾動時,決定 RollingFileAppender 的行為,涉及文件移動和重命名TimeBasedRollingPolicy: 最常用的滾動策略,它根據時間來制定滾動策略,既負責滾動也負責出發滾動。--><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--滾動時產生的文件的存放位置及文件名稱 %d{yyyy-MM-dd}:按天進行日志滾動%i:當文件大小超過maxFileSize時,按照i進行文件滾動--><fileNamePattern>${LOG_HOME}/${appName}-%d{yyyy-MM-dd}-%i.log</fileNamePattern><!--可選節點,控制保留的歸檔文件的最大數量,超出數量就刪除舊文件。假設設置每天滾動,且maxHistory是365,則只保存最近365天的文件,刪除之前的舊文件。注意,刪除舊文件是,那些為了歸檔而創建的目錄也會被刪除。--><MaxHistory>365</MaxHistory><!--當日志文件超過maxFileSize指定的大小是,根據上面提到的%i進行日志文件滾動 注意此處配置SizeBasedTriggeringPolicy是無法實現按文件大小進行滾動的,必須配置timeBasedFileNamingAndTriggeringPolicy--><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 日志輸出格式: --><layout class="ch.qos.logback.classic.PatternLayout"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern></layout></appender><!--logger主要用于存放日志對象,也可以定義日志類型、級別name:表示匹配的logger類型前綴,也就是包的前半部分level:要記錄的日志級別,包括 TRACE < DEBUG < INFO < WARN < ERRORadditivity:作用在于children-logger是否使用 rootLogger配置的appender進行輸出,false:表示只用當前logger的appender-ref,true:表示當前logger的appender-ref和rootLogger的appender-ref都有效--><!-- hibernate logger --><!--<logger name="com.atguigu" level="debug" />--><!-- Spring framework logger --><!--<logger name="org.springframework" level="debug" additivity="false"></logger>--><!--root與logger是父子關系,沒有特別定義則默認為root,任何一個類只會和一個logger對應,要么是定義的logger,要么是root,判斷的關鍵在于找到這個logger,然后判斷這個logger的appender和level。--><root level="info"><appender-ref ref="stdout" /><appender-ref ref="appLogAppender" /></root>
</configuration>

springProfile :

在配置文件中可以指定使用哪個日志輸出格式: spring.profiles.active=springProfileName ,未指定時,會自動找名稱帶有!開頭的日志格式,沒有則報錯,多個含有!名稱默認選擇最后一個。

?

?

?

?

?

?

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

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

相關文章

基4fft算法的蝶形圖_原地且自動整序的FFT算法

傳統的計算快速傅里葉變換的Cooley-Tukey算法效率極高&#xff0c;因其主要由蝶形運算構成&#xff0c;所以代碼形式也非常簡單&#xff0c;只是需要將輸入或者輸出按照位反轉的方式重新排序。這個重新排序的步驟并不是必須的。Clive Temperton于1991年在Self-Sorting In-Place…

嵌入式BootLoader技術內幕(二)

三、Boot Loader 的主要任務與典型結構框架 在繼續本節的討論之前&#xff0c;首先我們做一個假定&#xff0c;那就是&#xff1a;假定內核映像與根文件系統映像都被加載到 RAM 中運行。之所以提出這樣一個假設前提是因為&#xff0c;在嵌入式系統中內核映像與根文件系統映像也…

MongoDB數據庫的遷移

最近公司開始要換服務器啦&#xff0c;MongoDB上面的數據又得遷移&#xff0c;還是記錄一下比較好。 1&#xff09;、將MongoDB的壓縮包解壓至相對應的路徑(壓縮文件在本地服務器的地址192.168.0.22的/opt/zip文件下面) 2&#xff09;、配置好mongodb.conf文件&#xff0c;配…

excel vba 如何將日期周幾轉換成文字_這5個超實用的Excel技巧,讓你的辦公效率更高...

導讀&#xff1a;對于辦公職員來說&#xff0c;Excel是幾乎每天都會接觸的辦公軟件。在Excel中&#xff0c;有非常多的小技巧&#xff0c;學習這些小技巧需要不斷的積累和應用&#xff0c;今天指北針就來給大家分享5個超實用的Excel技巧&#xff0c;讓辦公變得更加有效率。文/芒…

VMware創建Linux及局域網內獨立訪問IP和訪問外網IP的配置

好早之前有一篇是配置遠程連接Linux和部署Tomcat的文章&#xff0c;但是并沒有講解如何配置IP的相關知識。最近公司在搞集群配置&#xff0c;我就先拿電腦上的VMware上的Linux做個測試&#xff0c;分享和總結一下經驗吧&#xff0c;也算是為了補齊之前的那個空白&#xff01; …

每位設計師都應該擁有的50個CSS代碼片段

每位設計師都應該擁有的50個CSS代碼片段

C#淺拷貝與深拷貝區別

也許會有人這樣解釋C# 中淺拷貝與深拷貝區別&#xff1a; 淺拷貝是對引用類型拷貝地址&#xff0c;對值類型直接進行拷貝。 不能說它完全錯誤&#xff0c;但至少還不夠嚴謹。比如&#xff1a;string 類型咋說&#xff1f; 其實&#xff0c;我們可以通過實踐來尋找答案。 首先&a…

內網安裝nginx+keepalived環境配置及簡單使用

分享一下這次艱難的配置過程&#xff0c;銜接上一篇的配置內網獨立IP虛擬機。 先吐槽一波&#xff0c;由于公司網絡屬于內網&#xff0c;與外網互不相通&#xff0c;所以在安裝nginx的時候可能會去外網找相對應rpm文件&#xff0c;而且也有許多的版本不兼容問題&#xff0c;好…

cad連續標注數字123怎么弄_實例講解CAD模型與布局中的各種比例

好課推薦&#xff1a;零基礎CAD&#xff1a;點我CAD室內&#xff1a;點我 周站長CAD&#xff1a;點我CAD機械&#xff1a;點我 Bim教程&#xff1a;點我CAD建筑&#xff1a;點我CAD三維&#xff1a;點我全屋定制&#xff1a;點我 ps教程&#xff1a;點我蘋果版CAD:點我 3dmax教…

SpringMvc異步請求的使用及部分原理

最近隔壁項目組的項目又出問題了&#xff0c;一直被用戶投訴太卡了&#xff0c;頁面白屏的那種&#xff0c;打開源代碼一看&#xff0c;全是非異步請求&#xff0c;類似于以下寫法&#xff1a; ResponseBodyRequestMapping(value "/getTest")public String getTest(…

Microsoft BizTalk ESB Toolkit 2.0

[>>> 更多<BizTalk開發系列>文章 ] 微軟于6月8號發布了BizTalk Server 2009企業集成平臺的最后一個功能組件:ESB Toolkit 2.0 (原名:ESB Guidance 2.0)&#xff0c;ESB ToolKit 2.0一個是工具和代碼集擴展了BizTalk Server 2009對于松耦合和動態消息架構的支持…

python解釋器環境中用于表示上一次運算結果的特殊變量_判斷正誤 PUSH CL_學小易找答案...

【單選題】將數學關系式2 【填空題】請用4位十六進制寫出每條指令結束后AX的值。 MOV AX, 0 DEC AX ADD AX, 7FFFH ADC AX, 1 NEG AX OR AX, 3FDFH AND AX, 0EBEDH XCHG AH, AL SAL AX, 1 RCL AX, 1 【判斷題】判斷正誤 MOV DX, 09H 【判斷題】判斷正誤 MOV [1200H], [SI] 【單…

Java線程的使用及共享協作

創建線程的三種方式 1、繼承Thread&#xff1b; static class MyThread extends Thread{Overridepublic void run() {//do something...} } public static void main(String[] args) throws InterruptedException {MyThread thread new MyThread ();thread.start(); } 2、實…

WCF學習筆記(三):開啟net.tcp端口

正在做一個使用tcp協議的WCF示例&#xff0c;遇到很多問題。首當其沖的問題就是——如何為WCF打開tcp端口。。。 具體步驟如下&#xff1a; 1、在IIS中為WCF安裝支持TCP協議的組件&#xff1a; 2、在防火墻的入棧規則中開啟808端口&#xff1b; 3、在servies.msc中打開兩個服務…

孿生神經網絡_軒轅實驗室:數字孿生:基于機器學習的汽車數字孿生模型

本文來源&#xff1a;A. Rassolkin, T. Vaimann, A. Kallaste, and V. Kuts, “Digital twin for propulsion drive of autonomous electric vehicle,” in 2019 IEEE 60th International Scientific Conference on Power and Electrical Engineering of Riga Technical Univer…

Java線程Fork/Join思想及實現

最近在看線程這一塊的東西&#xff0c;所以之前的那篇文章就是用來記錄的&#xff0c;但看起來好簡單的樣子&#xff0c;哈哈哈&#xff01; 這兩天看的是Fork/Join 分而治之的思想&#xff0c;Doug Lea大師的JUC還是挺強的&#xff0c;學并發編程應該沒有人不知道這個大佬吧&…

Sgen.exe: Speed up XmlSerializer's Startup Performance [.NET 2.0, XML Serialization]

Sgen.exe: Speed up XmlSerializers Startup Performance [.NET 2.0, XML Serialization] Written by Allen Lee 1. Why Sgen.exe? 在《Serialize Your Deck with Positron [XML Serialization, XSD, C#]》一文中&#xff0c;我們領略到 XML Serialization 是如何簡化我們的 X…

Java線程并發常用工具類使用

這次整理了一些比較常用的線程工具類啦。 CountDownLatch&#xff1a;在一組線程執行完后&#xff0c;才能開始執行調用等待的線程。上片文章提到過junit的測試盡量不要測試線程&#xff0c;如果硬是要可以使用CountDownLatch進行測試 CyclicBarrier&#xff1a;在一組線程中…

三維圖形幾何變換算法實驗_計算機視覺方向簡介 | 深度學習視覺三維重建

點擊上方“計算機視覺life”&#xff0c;選擇“星標”快速獲得最新干貨作者&#xff1a; Moonsmilehttps://zhuanlan.zhihu.com/p/79628068本文已由作者授權&#xff0c;未經允許&#xff0c;不得二次轉載三維重建意義三維重建作為環境感知的關鍵技術之一&#xff0c;可用于自動…

讀《高效程序員的45個習慣——敏捷開發修煉之道》

本書主要用平易的語言講述了45個有助于提高程序員自身敏捷的習慣&#xff0c;個人感覺這種老外寫的書翻譯成中文就少了很多意思。 主要的45個習慣是&#xff1a; 做事欲速則不達對事不對人排除萬難跟蹤變化對團隊投資懂得丟棄打破沙鍋問到底把握開發節奏讓客戶做決定讓設計指導…