SpringBoot之——log4j日誌配置案例
在建立Spring Boot工程時,我們引入了spring-boot-starter
,其中包含了spring-boot-starter-logging
,該依賴內容就是Spring Boot預設的日誌框架Logback,所以我們在引入log4j之前,需要先排除該包的依賴,再引入log4j的依賴,就像下面這樣:
一、引入log4j依賴
<!-- 忽略自帶的日誌框架. --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- log4j. --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> </dependency>
二、配置log4j-spring.properties
在引入了log4j依賴之後,只需要在src/main/resources
目錄下加入log4j-spring.properties
配置檔案,就可以開始對應用的日誌進行配置使用。
注意:Spring Boot官方推薦優先使用帶有-spring的檔名作為你的日誌配置(如使用log4j-spring.properties,而不是log4j.properties,不過取名為log4j.properties也是沒有問題的)
1、控制檯輸出
通過如下配置,設定root日誌的輸出級別為INFO,appender為控制檯輸出stdout
2、輸出到檔案# LOG4J配置 log4j.rootCategory=INFO,stdout # 控制檯輸出 log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
在開發環境,我們只是輸出到控制檯沒有問題,但是到了生產或測試環境,或許持久化日誌內容,方便追溯問題原因。可以通過新增如下的appender內容,按天輸出到不同的檔案中去,同時還需要為log4j.rootCategory新增名為file的appender,這樣root日誌就可以輸出到logs/springboot.log檔案中了。
當然輸出到檔案和輸出到控制檯是可以並行存在的。# LOG4J配置 log4j.rootCategory=INFO,stdout,file # 日誌輸出到檔案 log4j.appender.file=org.apache.log4j.DailyRollingFileAppender log4j.appender.file.file=logs/springboot.log log4j.appender.file.DatePattern='.'yyyy-MM-dd log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
3、分類輸出
當我們日誌量較多的時候,查詢問題會非常困難,常用的手段就是對日誌進行分類,比如:可以按不同package進行輸出。通過定義輸出到logs/my.log的appender,並對com.didispace包下的日誌級別設定為DEBUG級別、appender設定為輸出到logs/my.log的名為didifile的appender。
# com.kfit包下的日誌配置
log4j.category.com.kfit=DEBUG, didifile
# com.didispace下的日誌輸出
log4j.appender.didifile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.didifile.file=logs/my.log
log4j.appender.didifile.DatePattern='.'yyyy-MM-dd
log4j.appender.didifile.layout=org.apache.log4j.PatternLayout
log4j.appender.didifile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L ---- %m%n
可以對不同級別進行分類,比如對ERROR級別輸出到特定的日誌檔案中,具體配置可以如下:# LOG4J配置
log4j.rootCategory=INFO, stdout,errorfile
log4j.logger.error=errorfile
# error日誌輸出
log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorfile.file=logs/error.log
log4j.appender.errorfile.DatePattern='.'yyyy-MM-dd
log4j.appender.errorfile.Threshold = ERROR
log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout
log4j.appender.errorfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n %5p %c{1}:%L - %m%n
4、輸出到資料庫將日誌檔案輸出到資料庫配置:
# LOG4J配置
log4j.rootCategory=INFO,stdout,jdbc
# 資料庫輸出
log4j.appender.jdbc=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.jdbc.driver=com.mysql.jdbc.Driver
log4j.appender.jdbc.URL=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=true
log4j.appender.jdbc.user=root
log4j.appender.jdbc.password=root
log4j.appender.jdbc.sql=insert into log_icecoldmonitor(level,category,thread,time,location,note) values('%p','%c','%t','%d{yyyy-MM-dd HH:mm:ss:SSS}','%l','%m')
引入資料庫驅動:<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
建立表:CREATE TABLE `log_icecoldmonitor` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`level` varchar(255) NOT NULL DEFAULT '' COMMENT '優先順序',
`category` varchar(255) NOT NULL DEFAULT '' COMMENT '類目',
`thread` varchar(255) NOT NULL DEFAULT '' COMMENT '程序',
`time` varchar(30) NOT NULL DEFAULT '' COMMENT '時間',
`location` varchar(255) NOT NULL DEFAULT '' COMMENT '位置',
`note` text COMMENT '日誌資訊',
PRIMARY KEY (`Id`)
)
這樣就可以儲存到日誌到資料庫了,可能會出現如下異常資訊:Java連線Mysql資料庫警告:Establishing SSL connection
原因是MySQL在高版本需要指明是否進行SSL連線。解決方案如下:
在mysql連線字串url中加入ssl=true或者false即可,如下所示。
url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=true
相關推薦
SpringBoot之——log4j日誌配置案例
在建立Spring Boot工程時,我們引入了spring-boot-starter,其中包含了spring-boot-starter-logging,該依賴內容就是Spring Boot預設的日誌框架Logback,所以我們在引入log4j之前,需要先排除該包的依賴,再引入
SpringBoot之——LogBack日誌配置與多環境實戰
一、Slf4j+Logback的快速實踐spring-boot預設支援logback,所以無需引用任何以來只需要,配置application.properties即可,如果要功能豐富些,則配置下logback.xml。1、在application.properties裡配置的
springboot添加log4j日誌配置log4j.xml生成日誌文件
ota urn version xmlns private 1.0 owa ram .json 第一步:添加pom文件依賴 <!-- log4j --> <dependency> <
SpringBoot之yml檔案配置、日誌檔案配置
Application.yml配置: app: instance: code: portal profile: dev rest: # profile: dev profiles: datacenter: de
Springboot 之 自定義配置文件及讀取配置文件
ebo hello path host 目錄 tps pre 示例 control 本文章來自【知識林】 讀取核心配置文件 核心配置文件是指在resources根目錄下的application.properties或application.yml配置文件,讀取這兩個配置文件
Log4J日誌配置詳解
append tar 行號 中間 註意 -h 控制 復制代碼 #### 一、Log4j簡介Log4j有三個主要的組件:Loggers(記錄器),Appenders (輸出源)和Layouts(布局)。這裏可簡單理解為日誌類別,日誌要輸出的地方和日誌以何種形式輸出。綜合使用這
Linux學習總結(三十五)lamp之訪問日誌配置
lamp 訪問日誌 靜態元素過期時間 日誌切割 日誌瘦身 一 訪問日誌不記錄靜態文件訪問信息 網站大多元素為靜態文件,如圖片、css、js等,記錄這些訪問信息對我們運維工作沒有多大意義,如果一個站點訪問量很大,那麽一天就可以達到幾GB。影響我們磁盤的工作效率,那麽我們就可以配置虛擬主機限制
Log4J日誌配置總結
一、Log4j簡介 Log4j有三個主要的元件:Loggers(記錄器),Appenders (輸出源)和Layouts(佈局)。這裡可簡單理解為日誌類別,日誌要輸出的地方和日誌以何種形式輸出。綜合使用這三個元件可以輕鬆地記錄資訊的型別和級別,並可以在執行時控制日誌輸出的樣式和位置。 1、Logge
06-SpringBoot之WEB(四)—— 配置AOP切面
SpringBoot之WEB(四) 1. 新增AOP依賴 2. 編寫切面類 3. 執行結果 4. 原始碼下載 1. 新增AOP依賴 <dependency> <groupId>org.sprin
springboot整合log4j日誌記錄
1、在src/main/resources下面新建一個名為log4j.properties的檔案: ### direct log messages to stdout ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j
mybatis上的log4j日誌配置輸出
Log4j Log4j是Apache的一個開源專案,通過使用Log4j,我們可以控制日誌資訊輸送的目的地是控制檯、檔案、GUI元件,甚至是套介面伺服器、NT的事件記錄器、UNIX Syslog守護程序等;我們也可以控制每一條日誌的輸出格式;通過定義每一條日誌資訊的級別,我們能夠更加細緻
JVM系列第14講:JVM引數之GC日誌配置
說到 Java 虛擬機器,不得不提的就是 Java 虛擬機器的 GC(Garbage Collection)日誌。而對於 GC 日誌,我們不僅要學會看懂,而且要學會如何設定對應的 GC 日誌引數。今天就讓我們來學習一下 Java 虛擬機器中所有與 GC 日誌有關的引數。相信掌握了這些引數之後,對於大家線上列印
SpringBoot——自定義日誌配置
一、SpringBoo的t預設配置 SpringBoot在其包下有日誌框架相關的配置檔案,含logback、log4j2等,這也是為什麼SpringBoot可以直接使用這些日誌框架的原因: 二、自定義日誌框架配置檔案 有時我們為了開啟日誌框架的高階功
SpringBoot專欄:日誌配置那些事_log4j_logback_slf4j(第5講)
開篇: 以後開發的時候,日誌記錄方法的呼叫,不應該來直接呼叫日誌的實現類,而是呼叫日誌抽象層裡面的方法; 給系統裡面匯入slf4j的jar和 logback的實現jar 圖解 每一個日誌的實現框架都有自己的配置檔案。使用slf4j以後,配置檔案還是
配置Springboot之安裝並配置Gradle
下載Gradle 首先在官方網站下載所需的Gradle版本,推薦下載all版本,內含說明文件(程式設計師必備技能). 配置Gradle 由於我所使用的是window10,在此就不敘述其他系統電腦的配置了.此電腦-->計算機-->系統屬性-->高階系統設定
SpringBoot整合+logback日誌配置
本次演示的程式碼結構如下,基於maven,整合SpringBoot、Spring、Mybaits的SSM框架。同時測試logback日誌框架的使用及配置。 1.建立maven工程,修改pom.xml檔案 <project xmlns="http://maven.ap
SpringBoot 之 自定義配置檔案及讀取配置檔案application.properties或yml
讀取核心配置檔案核心配置檔案是指在resources根目錄下的application.properties或application.yml配置檔案,讀取這兩個配置檔案的方法有兩種,都比較簡單。 核心配置檔案application.properties內容如下: server.port=9090 test.m
Log4j日誌-配置檔案說明
參考: https://www.cnblogs.com/yudar/p/5113655.html https://blog.csdn.net/niuma1024/article/details/51362606 一、簡介 Log4j由三個重要的元件構成:日誌資訊的優先順序,日誌資訊的
4.Springboot 之 自定義配置檔案及讀取配置檔案
讀取核心配置檔案 核心配置檔案是指在resources根目錄下的application.properties或application.yml配置檔案,讀取這兩個配置檔案的方法有兩種,都比較簡單。 核心配置檔案application.properties內容如下: server.port=9090 tes
Log4J日誌配置詳解和自定義log4j日誌級別及輸出日誌到不同檔案實現方法
package com.jo.work.log4j; import java.util.Enumeration; import org.apache.log4j.Appender; import org.apache.log4j.FileAppender; import org.apache.log4j.