日誌使用:
* 選一個門面(抽象層) 日誌門面:SLF4j;
* 選一個實現; 日誌實現:Logback;
springboot中使用的是 slf4j + logback
這是springboot中日誌的依賴關係:
如果我們要引入其他框架,一定要把這個框架的默認日誌依賴移除掉,用中間包來替換原有的日誌框架
springboot中配置文件:application.yml
# trace<debug<info<warn<error
# logging.file
# 不指定路徑在當前項目下生成springboot.Log日誌
# 若指定路徑則在指定位置生成日誌文件
# logging.path
# 在指定的路徑下生成springboot的日誌文件
# 在當前磁盤的根路徑下創建spring文件夾和裏面的Log文件夾;使用spring.Log作爲默認文件
# 在控制檯的打印格式
# logging.pattern.console
# 在日誌文件中的打印格式
# logging.pattern.file
# 日誌輸出格式:
# %d表示日期時間,
# %thread表示線程名,
# %-5leve1:級別從左顯示5個字符寬度
# %logger{5e} 表示logger名字最長50個字符,否則按照句點分割
# %msg:日誌消息
# %n是換行符
#
logging:
level:
root: info
pattern:
console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] --> %-5level %logger{5e} -%msg%n"
path: /spring/log
/** * Logging System Customization * Logback 1ogback-spring-xml,1ogback-spring.grooy,1ogback.xnl or1ogback.groovy * Log4j2 1og4j2-spring.xmlor 1og4j2.xml * JDKJavauUtil logging.properties Logging) * logback.xml:直接就被日誌框架識別了; * logback-spring.xml:日誌框架就不直接加載日誌的配置項,由SpringBoot解析日誌配置, * 可以使用SpringBoot的高級Profile功能 * * <springProfile name="dev"> * <!--configuration to be enabled when the"staging"profile is active--> * 可以指定某段配置只在某個環境下生效 * </springProfile> * */
public class Logs {
/**
* 選一個門面(抽象層) 日誌門面:SLF4j;
* 選一個實現; 日誌實現:Logback;
*/
/**
* 以後開發的時候,日誌記錄方法的調用,不應該未直接調用日誌的實現類,
* 而是調用日誌抽象層裏面的方法;
* 給系統裏面導入slf4j的jar和logback的實現jar
*/
/**
* 如何讓系統中所有的日誌都統一到slf4j;
* 1、將系統中其他日誌框架先排除出去;
* 2、用中間包來替換原有的日誌框架;
* 3、我們導入slf4j其他的實現
*/
/**
* 1)、SpringBoot底層也是使用slf4j+logback的方式進行日誌記錄
* 2)、SpringBoot也把其他的日誌都替換成了slf4j;
*/
/**
* 4)、如果我們要引入其他框架,一定要把這個框架的默認日誌依賴移除掉
* 用中間包來替換原有的日誌框架
* Spring框架用的是commons-logging;
* <dependency>
* <groupId>org.springframework</groupId
* <artifactId>spring-core</artifactId>
* <exclusions>
* <exclusion>
* <!-- 如果要引用非官方的日誌框架,要先排除官方日誌框架 -->
* <groupId>commons-logging</groupId>
* <artifactId>commons-logging</artifactId>
* <exclusion>
* <exclusions>
* </dependency>
*
*/
/**
* 由低到高 trace<debug<info<warn<error
* 可以調整輸出的日誌級別;日誌就只會在這個級別以以後的高級別生效
* springboot 中默認的日誌級別爲 info
*/
/**
* logging.level.com.atguigu=trace
* #Logging.path=
*
* #不指定路徑在當前項目下生成springboot.Log日誌
* #可以指定完整的路徑;
*
* #Logging.file=G:/springboot.Log
* #在當前磁盤的根路徑下創建spring文件夾和裏面的Log文件夾;使用spring.Log作爲默認文件logging.path=/spring/log
* #在控制檯輸出的日誌的格式
*
* 1ogging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{5e} -%msg%n
* #指定文件中日誌輸出的格式
* logging.pattern.file=
*
* 日誌輸出格或
* #控制檯輸出的日誌格式
* #%d:日期
* #%thread:線程號
* #%-5level:靠左 級別
* #%logger{50}:全類名50字符限制,否則按照句號分割
* #%msg:消息+換行
* #%n:換行
*/
/***
* # trace<debug<info<warn<error
* logging:
* level:
* root: info
* pattern:
* console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] --> %-5level %logger{5e} -%msg%n"
* file: /spring/log
*/
/**
* Logging System Customization
* Logback 1ogback-spring-xml,1ogback-spring.grooy,1ogback.xnl or1ogback.groovy
* Log4j2 1og4j2-spring.xmlor 1og4j2.xml
* JDKJavauUtil logging.properties Logging)
* logback.xml:直接就被日誌框架識別了;
* logback-spring.xml:日誌框架就不直接加載日誌的配置項,由SpringBoot解析日誌配置,
* 可以使用SpringBoot的高級Profile功能
*
* <springProfile name="staging">
* <!--configuration to be enabled when the"staging"profile is active-->
* 可以指定某段配置只在某個環境下生效
* </springProfile>
*
*
*/
/**
* spring boot 默認 slf4j logback
*
* 將日誌框架切換爲log4j2。 先排除,後添加依賴
*
* <dependency>
* <groupId>org.springframework.boot</groupId>
* <artifactId>spring-boot-starter-web</artifactId>
* <exclusions>
* <!-- 先排除 -->
* <exclusion>
* <artifactId>spring-boot-starter-logging</artifactId>
* <groupId>org.springframework.boot</groupId>
* </exclusion>
* </exclusions>
* </dependency>
* <!--後添加-->
* <dependency>
* <groupId>org.springframework.boot</groupId>
* <artifactId>spring-boot-starter-log4j2</artifactId>
* </dependency>
*
*/
/**
* slf4j+log4j的方式;
* 先排除,後添加依賴
* <dependency>
* <groupId>org.springframework.boot</groupId>
* <artifactId>spring-boot-starter-web</artifactId>
* <exclusions>
* <!-- 先排序覆蓋 -->
* <exclusion>
* <artifactId>logback-classic</artifactId>
* <groupId>ch.qos.logback</groupId>
* </exclusion>
* </exclusions>
* </dependency>
* <!-- 後引入 -->
* <dependency>
* <groupId>org.slf4j</groupId>
* <artifactId>slf4j-log4j12</artifactId>
* </dependency>
*
*/
public static void main(String[] args) {
String string = "world";
Logger logger = LoggerFactory.getLogger(Logs.class);
logger.info("hello {}",string);
}
}