springboot 中日誌使用記錄

日誌使用:

     * 選一個門面(抽象層)   日誌門面: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);
    }
    
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章