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);
    }
    
}

 

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